gfortran使用`-dec-math`给`dacosd_`提供未定义的引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gfortran使用`-dec-math`给`dacosd_`提供未定义的引用相关的知识,希望对你有一定的参考价值。
我正在尝试使用gfortran
编译Fortran应用程序,链接到英特尔MKL库。
对'dacosd_'的未定义引用
有一个acos
或acosd
(反度余弦的程度),我几乎在那里,但我无法使用-fall-intrinsics
或-dec-math
标志编译,如手册中所示,因为它都会产生相同的错误。
哪里弄错了,怎么编译呢?
我使用的gfortran
版本是5.4.1。
答案
正如RussF评论的那样,这些非标准扩展函数包含在gfortran 7及更高版本中。你需要一个更新的版本。另外,正确的旗帜是-fdec-math
,而不是-dec-math
。
intrinsic dacosd
print *, dacosd(0.5d0)
end
编译为:
> gfortran-6 -fdec-math dacosd.f90
gfortran-6: error: unrecognized command line option ‘-fdec-math’; did you mean ‘-ffast-math’?
> gfortran-7 -fdec-math dacosd.f90
> ./a.out
60.000000000000007
您可以通过转换轻松完成相同的计算
double precision, parameter :: pi = acos(-1.d0)
print *, acos(0.5d0)*180/pi
end
或者您可以通过这种方式定义自己的(d)acosd
功能,以保持便携性。
以上是关于gfortran使用`-dec-math`给`dacosd_`提供未定义的引用的主要内容,如果未能解决你的问题,请参考以下文章
不能在Ubuntu上使用gfortran和Abaqus 2016