我在FFTW (10.15.5)上,并且我已经使用brew install fftw安装了macOS。我还安装了GCC (10.2.0版),它与我在下面使用的命令有符号链接。
我能够编译并运行一个简单的C++程序,如下所示:
g++-10 test.cpp -L/usr/local/lib -I/usr/local/include -lfftw3 -lm 但是,我必须修改环境变量CPATH才能使其工作。
我无法让一个简单的Fortran FFTW示例工作(我使用的是this one)。我用来编译的命令是:
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如果我理解正确的话,链接步骤会失败。任何关于我如何找到我可能需要传递给编译器的相关路径的输入都将非常有用。我在寻找解决方案,但我找不到。但是,如果我遗漏了一些明显的东西,我道歉。
发布于 2020-08-19 16:48:10
多亏了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库文件混合在一起。
https://stackoverflow.com/questions/63448003
复制相似问题