Fortran 为ifort提供库的路径
免责声明:这不是我的领域,我也不懂行话 我试图在计算服务器上编译和运行一些代码。机器上安装了英特尔编译器。当我尝试使用Fortran 为ifort提供库的路径,fortran,intel-fortran,Fortran,Intel Fortran,免责声明:这不是我的领域,我也不懂行话 我试图在计算服务器上编译和运行一些代码。机器上安装了英特尔编译器。当我尝试使用 ifort src.f -o mem 一切正常。如果我尝试优化事物: ifort -fast src.f. -o mem 我首先收到的信息是: ipo: remark #11001: performing single-file optimizations ipo: remark #11006: generating object file /tmp/ipo_ifortY
ifort src.f -o mem
一切正常。如果我尝试优化事物:
ifort -fast src.f. -o mem
我首先收到的信息是:
ipo: remark #11001: performing single-file optimizations
ipo: remark #11006: generating object file /tmp/ipo_ifortYepD4m.o
这似乎合乎逻辑。当我运行out文件时,我得到一个错误:
./mem: error while loading shared libraries: libgfortran.so.1: cannot open shared object file: No such file or directory
我搜索了libgfortran
:
avityo@admin:~/prog/mn270.161> locate libgfortran
/home/MATLAB/R2011b/sys/os/glnxa64/libgfortran.so.3
/home/MATLAB/R2011b/sys/os/glnxa64/libgfortran.so.3.0.0
/opt/matlab/r2012b/sys/os/glnxa64/libgfortran.so.3
/opt/matlab/r2012b/sys/os/glnxa64/libgfortran.so.3.0.0
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortran.a
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortran.so
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortranbegin.a
/usr/lib64/libgfortran.so.3
/usr/lib64/libgfortran.so.3.0.0
有没有办法告诉ifort可用的libgfort库?我同意弗拉基米尔的观点,gfortran和ifort之间存在一种奇怪的依赖关系。但是,ifort似乎正在寻找libgfortran.so.1,而其中列出了libgfortran.so.3。您应该能够通过
ln-s[target][shortcut]
将前者链接到后者。就是
ln -s /usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so.1
这真奇怪。iPort不应该依赖于libgfortran,也不应该依赖于它的旧版本。你确定你在这里复制了这个汇编吗?为什么在
src.f.
中有另一个点?在调试运行时链接问题时,使用ldd
实用程序并查看其输出通常是有指导意义的。@VladimirF这个额外的点是我发布问题时的一种类型。当我尝试运行输出(bin?)文件时,计算服务器会打印输出(这是一个队列系统)而不是编译代码的机器。@HighPerformanceMark您能给我任何关于如何执行此操作的链接吗?在命令行键入man ldd
。没有root权限我如何执行此操作?通过询问具有root权限的人:群集的IT帮助台。我希望避免这种情况。您可以创建一个到您家的符号链接目录(或您有权访问的任何地方),然后将其添加到您的LD_LIBRARY_路径中,这样做应该会奏效。您为什么不想询问群集的it帮助台?他们的工作就是帮助你做这样的事情。