例如,考虑我在一台计算机上编写了Fortran程序,并希望在另一台可能没有所需库和/或具有不同编译器的计算机上运行它(或者甚至更好,根本没有Fortran编译器)。是否可以创建一个包含所有依赖项的可执行文件?
我在Fedora 26中使用gfortran(7.2.1),有时在我的代码中使用LAPACK例程。
在程序中使用-static
选项
program main
write (*,*) 'Hello'
end
我得到了输出
gfortran -static a.f90
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
gfortran -static-libgfortran a.f90
答案 0 :(得分:3)
在Fedora中,默认情况下gcc不会附带静态库。
您需要为glibc-static
选项安装程序包-static
才能正常工作,如related question中所示。
请注意,-static-libgfortran
只会对libgfortran
库进行静态链接,并且您必须具有静态版本的依赖项。
答案 1 :(得分:0)