MinGW在linux上交叉编译

我有一个项目,我想为Windows编译。 我有适当的生成文件,一切工作与g ++。 我运行apt-get install mingw32 ,下载了一个100MB的MB包,但是我找不到如何真正运行它。 没有mingw32可执行文件,也不能在互联网上find任何帮助,那么我如何真正编译它呢?

如果您看到dpkg -L mingw32的输出,您可以看到该软件包包含一个工具链,即一组替代工具(编译器,链接器等),可用于在另一个系统中编译您的代码。

你必须使用/usr/bin/i586-mingw32msvc-g++来编译你的代码。 如果我没有记错的话,存在一个变量来告诉Makefile使用这样的工具链。

另一个选择是看看Mingw Cross Environment( MXE ),它专门针对从Linux到Windows(最近也是Mac)的交叉编译。 该软件包支持许多库,正在积极开发中。 只要看看网站,看看它是否适合您的需求。

顺便说一下,建议你使用开发版本而不是发布版本。 这是因为发布版本通常过时非常快,原因是程序包维护人员(库的)更改了URL,从而导致MXE发行版本中断。 开发版本通常是更新的。

我用它来交叉编译postgres:

 $ sudo apt-get install mingw-w64 $ ./configure --host=i686-w64-mingw32 --without-zlib # 32 bit # or --host=x86_64-w64-mingw32 64 bit 

在这里参考

其他项目做不同,如ffmpeg:

  ./configure --target-os=mingw32 --cross-prefix=i686-w64-mingw32- 

或者一些

  ./configure CC=i686-w64-mingw32-gcc ... 

等等!