Fortran Coder

标题: 在macOS 10.12.3 安装了ifort17.0运行camb出错 [打印本页]

作者: Kong    时间: 2017-2-6 22:59
标题: 在macOS 10.12.3 安装了ifort17.0运行camb出错
我之前安装了gfortran然后在camb下make成功了,后来就卸了安装了最新的ifort,在camb下make之后出错如下:
[Fortran] 纯文本查看 复制代码
make
mkdir -p Release
ifort -fast -W0 -WB -fpp  -qopenmp -module Release -IRelease/ Release/constants.o  Release/utils.o   Release/subroutines.o Release/inifile.o  Release/power_tilt.o  Release/recfast.o Release/reionization.o Release/modules.o Release/bessels.o Release/equations.o Release/halofit_ppf.o Release/lensing.o Release/SeparableBispectrum.o Release/cmbmain.o Release/camb.o inidriver.F90 -cxxlib -o camb
mkdir -p Releaselib
ifort -shared -fpic -fast -W0 -WB -fpp  -qopenmp -module Releaselib -IReleaselib/ -c constants.f90 -o Releaselib/constants.o
ifort: command line error: '-fminshared' conflicts with '-fpic'
make: *** [Releaselib/constants.o] Error 1


求助各位大神,小白已经撸了这个问题好几天了

作者: fcode    时间: 2017-2-7 10:38
这可能是你前面的某些 o 文件使用了 -fminshared 编译选项:
fminshared
Specifies that a compilation unit is a component of a main program and should not be linked as part of a shareable object.

导致您不能在链接的时候使用 -fPIC (地址无关)选项。
因为这俩选项是矛盾的。
你可以试试:
1. 先 make clean 然后重新 make
2. 如果前面的编译过程用到了 -fminshared 选项,则去掉该选项。
3. 如果是别人编译的目标代码,用到了 -fminshared 而你无法修改。那么可以尝试去掉 -fPIC
4. 如果你去掉了 -fPIC,也许在某些CPU上,或内存里有多份 .so 时,会有一些问题。





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2