如何静态编译Fortran代码

时间:2017-11-06 07:05:51

标签: fortran fedora static-linking intel-fortran

我在英特尔Fortran的一台PC上用Lapack库编译了一份代码副本。然后我在另一台PC(没有安装Lapack的同一个操作系统)上运行它。它失败了。

这可以通过在另一台PC上安装Lapack来解决。使用其他库时会出现同样的问题。这看起来像一个动态编译问题(我不确定)。我的问题是如何获得可以在任何机器上运行的真正可执行文件?

1 个答案:

答案 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

也可能需要。试试吧。