图书馆找不到fortran

时间:2015-01-22 10:42:46

标签: fortran

我尝试使用fortran和nag fortran库编译文件 在32倍的机器上运行完美 但是不能在64x上工作 但是同样的程序适用于其他64x机器

每次发生错误消息/usr/bin/ld: cannot find -lnag

我该如何解决这个问题?

我添加了一些关于我的问题的信息

所以这种附加错误信息

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libnag.a when searching for -lnag
当我使用

编译时出现

f77 d01dafe.f -lnag

但是在用

进行编译时
f77 d01dafe.f -L/usr/lib/libnag.a

我得到了

d01dafe.o: in function « MAIN__ »:
fort77-2895-1.c:(.text+0xda): undefined reference to « d01daf_ »
fort77-2895-1.c:(.text+0x209): undefined reference to « d01daf_ »
collect2: error: ld returned 1 exit status

1 个答案:

答案 0 :(得分:1)

NAG Library的用户注释(un.html)提供了有关如何访问库的详细信息。安装库时,应该已经安装了此文件(某处!)。标记22,23和24的注释也可在http://www.nag.co.uk/numeric/fl/FLinuns.asp获得。

例如,来自http://www.nag.co.uk/doc/inun/fl24/l6adfl/un.html#accessing (对于gfortran图书馆)

” 要使用NAG Fortran库和提供的ACML库,您可以按以下方式链接:

gfortran -I[INSTALL_DIR]/nag_interface_blocks driver.f90 [INSTALL_DIR]/lib/libnag_acml.a [INSTALL_DIR]/acml/libacml_mp.a -lgomp

其中driver.f90是您的应用程序;

gfortran -I[INSTALL_DIR]/nag_interface_blocks driver.f90 [INSTALL_DIR]/lib/libnag_acml.so [INSTALL_DIR]/acml/libacml_mp.so

如果需要可共享库。请注意,可共享库已完全解析,因此您无需显式链接其他运行时库;这需要在链接时正确设置环境变量LD_LIBRARY_PATH(见下文)。

但是,如果您希望链接到不需要使用ACML的NAG库版本,您可能希望使用自包含库,如下所示:

gfortran -I[INSTALL_DIR]/nag_interface_blocks driver.f90 [INSTALL_DIR]/lib/libnag_nag.a

gfortran -I[INSTALL_DIR]/nag_interface_blocks driver.f90 [INSTALL_DIR]/lib/libnag_nag.so

如果需要可共享库。 “

请特别注意,没有libnag.alibnag.so,因此只使用-lnag无论如何都无法使用。要访问无供应商库(假设您的LD_LIBRARY_PATH设置正确),您可能应该执行类似

的操作
f77 d01dafe.r -lnag_nag