问题描述
我正在尝试在Mac(10.15.7)上安装一些代码。我按照指示进行操作
No suitable fortran compiler found (cause: 'cannot determine ifort version.
(complete log in /Users/joe/Documents/Research/code/plc_3.0/plc-3.01/build/config.log)')
The configuration Failed
(complete log in /Users/joe/Documents/Research/code/plc_3.0/plc-3.01/build/config.log)
但是我明白了
which ifort
/usr/local/bin/ifort
给出
ifort -v
ifort version 19.1.1.216
给出
Checking for program 'ifort'
/opt/anaconda3/envs/py38/bin/x86_64-apple-darwin13.4.0-gfortran
find program=['ifort'] paths=['/opt/anaconda3/envs/py38/bin','/opt/anaconda3/condabin','/Library/Frameworks/Python.framework/Versions/3.8/bin','/usr/local/bin','/opt/local/bin','/Users/joe/Documents/Research/openmpi-3.0.0/oshmem/mca/scoll/mpi/bin','/opt/local/sbin','/usr/bin','/bin','/usr/sbin','/sbin','/Library/TeX/texbin','/Library/Apple/usr/bin'] var='FC' -> ['/opt/anaconda3/envs/py38/bin/x86_64-apple-darwin13.4.0-gfortran']
['/opt/anaconda3/envs/py38/bin/x86_64-apple-darwin13.4.0-gfortran','-logo']
err: ld: library not found for -logo
collect2: error: ld returned 1 exit status
from /Users/joe/Documents/Research/code/plc_3.0/plc-3.01: cannot determine ifort version.
from /Users/joe/Documents/Research/code/plc_3.0/plc-3.01: The configuration Failed
所引用的config.log的最后一部分是
{{1}}
解决方法
日志说了不同的话:
-
waf在您的默认路径中寻找了
ifort
:-
/opt/anaconda3/envs/py38/bin
-
/opt/anaconda3/condabin
-
/Library/Frameworks/Python.framework/Versions/3.8/bin
-
/usr/local/bin
-
/opt/local/bin
- [...]
-
-
waf已经找到了一个实际上为
/opt/anaconda3/envs/py38/bin/x86_64-apple-darwin13.4.0-gfortran
的fortran编译器,但是在执行时,它找不到一个libogo
库。它在错误的位置找到了它,因为/usr/local/bin
在/opt/anaconda3/envs/py38/bin
在路径列表中。
要更改路径列表,可以在名为path_list
的waf文件中使用find_program
函数的参数wscript
。
但是更简单的方法可能是在调用waf
时更改PATH:
PATH="/usr/local/bin:$PATH" ./waf configure --install_all_deps