我正在开发一个FORTRAN项目,我想在一台专门用于自动构建的linux机器上构建我想要维护的所有二进制文件。我已成功使用 mingw 从Linux机器上的Windows机器的C源代码构建32位和64位二进制文件,并在Ubuntu上使用以下软件包。
apt-get install mingw32
apt-get install mingw-w64
然后我运行以下命令来实际编译:
gcc -b amd64-mingw32msvc -V 4.4.4 -o <...other options>
但是,我通过apt-get获得的 mingw 包不包含FORTRAN编译器。
有人对我能做什么有任何想法吗?
答案 0 :(得分:3)
如果你有mingw32并且Gnu C交叉编译器正在为你工作...为什么不只是获得Gnu Fortran交叉编译器呢?
http://www.nber.org/sys-admin/mingw32-fortran-fedora.html
EXAMPLE apt-get install mingw32-gcc-fortran
答案 1 :(得分:3)
我知道这是一个旧帖子,但有些事情似乎发生了变化,人们可能仍然对这个主题感兴趣。
问题:我想使用我的linux机器编译一些代码并创建一个.exe,我可以发送给使用Windows的人。
解决方案:基本上在这里:http://mxe.cc/
我做了什么:
git clone -b stable https://github.com/mxe/mxe.git
它将下载一些小东西并创建目录“mxe”(可能在您的主文件夹中)
进入该mxe目录并运行“make”。但是:这需要几个小时,并且在你的硬盘驱动器上占用几GB,所以改为运行
make mpfr eigen opencsg cgal qt
有关如何缩短所有内容的更多想法,请参阅this或mxe教程或其他地方;)
编译内容的最简单方法似乎是:
~/mxe/usr/bin/i686-pc-mingw32-gfortran -c main.f95
~/mxe/usr/bin/i686-pc-mingw32-gfortran main.o -o outfile.exe
当然你可以选择fortran以外的东西,只需查阅mxe / usr / bin来查看它的名字。
答案 2 :(得分:1)
您始终可以从MinGW(-w64)项目本身下载并安装预构建的编译器:
Windows 64位:http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/4.6.2-1/ Windows 32位:http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/4.6.2-1/
只需在某处解压缩并将cross*/bin
目录添加到PATH。
我包括(obj)c(++)和fortran。
答案 3 :(得分:0)
在Ubuntu 18.04上我使用
apt install gfortran-mingw-w64
然后使用编译器x86_64-w64-mingw32-gfortran
代替gfortran
。如果您正在使用cmake,则可以从构建目录配置编译器,如下所示:
FC=x86_64-w64-mingw32-gfortran cmake ..