gfortran дает неопределенную ссылку на `dacosd_` даже с`-dec-math`

Я пытаюсь скомпилировать приложение на Фортране, используя gfortran, связывая с библиотеками Intel MKL.

неопределенная ссылка на `dacosd_'

E сть acos или же acosd (обратный косинус в степени), я почти там, но я не могу скомпилировать, используя -fall-intrinsics или же -dec-math флаг, как указано в руководстве, потому что все это приводит к одной и той же ошибке.

Где я ошибся и как мне это скомпилировать?

gfortran Я использую версию 5.4.1.

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 функционировать таким образом, чтобы оставаться портативным.

Другие вопросы по тегам