2011-08-11 50 views
2

我正在开发一个FORTRAN项目,并且我想要构建所有想要在专用于自动构建的Linux机器上维护的二进制文件。我已成功使用mingw在Linux机器上使用以下软件包从C源代码构建32位和64位二进制文​​件。如何设置linux将FORTRAN代码编译为Windows二进制文件?

apt-get install mingw32 
apt-get install mingw-w64 

然后我运行下面的命令实际编译:

gcc -b amd64-mingw32msvc -V 4.4.4 -o <...other options> 

不过,我已经通过获得的MinGW的包apt-get的不包括Fortran编译器。

有人对我能做什么有什么想法吗?

+0

只是想看看我是否清楚 - 你想在linux机器上制作一个windows二进制文件。对?既然你不能运行(检查是否所有东西都是okey),在一个* nix机器上运行一个win exe文件,这样的目的是什么? – Rook

+0

@Rook:据推测,OP的开发环境设置在Linux上,熟悉Linux工具等。这是否足以弥补交叉编译与原生Windows编译的麻烦,例如,在虚拟机中是另一个话题。 – janneb

+0

@Rook:我正在使用自动构建系统(在专用计算机上),并希望进行交叉编译,以便将构建过程全部保留在同一台计算机上(而不是尝试委托给其他专用物理或虚拟机)。我编辑了我的帖子以反映此信息。 –

回答

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。

+0

我最终从http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/下载了一个自动化版本。具体来说,我下载了mingw-w64-1.0-bin_x86_64-linux_20110808.tar.bz2以支持64位。我也将获得32位版本。但是这个解决方案适用于我,谢谢!我希望有一个漂亮的Debian软件包,但... –

+0

队长:请注意,该软件包包含一个没有Graphite循环优化支持的通用版本,以及(我认为)GCC 4.5。为什么不向功能包维护人员发送功能请求? – rubenvb

3

我知道这是一条古老的线索,但有些事情似乎已经改变,人们可能仍然对这个话题感兴趣。

问题:我想用我的Linux机器来编译一些代码,并创建一个.exe文件,我可以向使用Windows的人。

解决方案:从本质上讲这里:HTTP://mxe.cc/

我做了什么:

  • 检查,看看你的系统有所有的软件,你需要here
  • 运行

git clone -b stable https://github.com/mxe/mxe.git

它将downloa d一些小东西,并创建目录“MXE”(可能在你的主文件夹)

  • CD放入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中,看看其所谓。

+0

不像论坛,stackoverflow没有线程,只是问题和答案 – johannes

相关问题