我在英特尔Fortran的一台PC上用Lapack库编译了一份代码副本。然后我在另一台PC(没有安装Lapack的同一个操作系统)上运行它。它失败了。
这可以通过在另一台PC上安装Lapack来解决。使用其他库时会出现同样的问题。这看起来像一个动态编译问题(我不确定)。我的问题是如何获得可以在任何机器上运行的真正可执行文件?
答案 0 :(得分:0)
我现在得到一个非常明确的答案。这个问题的直接答案是(正如@Vladimir F提到的& @Ross)使用选项" -static"对于gfortran和ifort。
可能会出现一些问题。
静态编译和动态编译的库是不同的。例如,我们可能已经安装了一个名为" LIBNAME"已经。但是,类似的lib称为" LIBNAME-static"可能需要" -static"选项版本。根据类似的警告:
/usr/bin/ld: cannot find -lLIBNAME
我们需要安装的是libLIBNAME。我们可以通过
安装它(例如Fedora)sudo dnf install libLIBNAME.
和
sudo dnf install libLIBNAME-static
也可能需要。试试吧。