如何解决将FFTW与gfortran链接时出现问题对于体系结构x86_64未找到符号
我在macOS Catalina(10.15.5)上,并且已经使用brew install fftw
安装了FFTW。我还安装了GCC(版本10.2.0),它与以下我正在使用的命令符号链接。
我能够像这样编译并运行一个简单的C ++程序:
g++-10 test.cpp -L/usr/local/lib -I/usr/local/include -lfftw3 -lm
但是,我必须修改环境变量CPATH
才能使它工作。
我无法获得一个简单的Fortran FFTW示例来工作(我正在使用this)。我用来编译的命令是:
gfortran-10 test.f90 -L/usr/local/lib -I/usr/local/include -lfftw3 -lm
我得到的错误如下:
Undefined symbols for architecture x86_64:
"__gfortran_os_error_at",referenced from:
_MAIN__ in ccRvJaEQ.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
如果我理解正确,则链接步骤将失败。关于如何找到必须传递给编译器的相关路径的任何输入将非常有帮助。我搜索了解决方案,但找不到。但是,如果我错过了明显的事情,我表示歉意。
解决方法
感谢msi_gerva通过注释的有用提示,我能够通过下载FFTW并将其编译到installation directions之后的自定义目录中来解决此问题。
现在,如果像这样将库的新位置传递给gfortran
,则链接不会失败:
gfortran-10 test.f90 -L/new/path/to/lib -I/new/path/to/include -lfftw3 -lm
由于/usr/local/
是默认安装路径,因此以前安装的FFTW库文件可能会混在一起。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。