我有一个项目,我想为Windows编译。我有适当的makefile,一切都适用于g ++。我跑了apt-get install mingw32
,下载了一个100-ahh的MB软件包,但我找不到如何实际运行它。没有mingw32
可执行文件,也无法在互联网上找到任何帮助,那么我该如何用它进行编译?
答案 0 :(得分:12)
如果您看到dpkg -L mingw32
的输出,您可以看到该软件包包含一个工具链,即一组可用于在另一个系统中编译代码的替代工具(编译器,链接器等)。
您必须使用/usr/bin/i586-mingw32msvc-g++
才能编译代码。如果我记得正确存在一个变量来告诉Makefile使用这样的工具链。
答案 1 :(得分:5)
我用它来交叉编译postgres:
$ sudo apt-get install mingw-w64
$ ./configure --host=i686-w64-mingw32 --without-zlib # 32 bit
# or --host=x86_64-w64-mingw32 64 bit
ref here
其他项目采用不同的方式,例如ffmpeg:
./configure --target-os=mingw32 --cross-prefix=i686-w64-mingw32-
或某些
./configure CC=i686-w64-mingw32-gcc ...
等。 GL!
答案 2 :(得分:4)
另一个选择是看看Mingw Cross Environment(MXE),它专门针对从Linux到Windows(最近也是Mac)的交叉编译。该软件包具有大量库的bult-in xupport,并且正在积极开发中。只需查看网站,了解它是否符合您的需求。
顺便说一句,建议您使用开发而不是发布版本。这是因为发布版本通常过时,因为(库的)包维护者更改URL导致MXE发布版本被破坏。开发版本通常更新。
答案 3 :(得分:0)
这是我针对mingw g++
交叉编译器的方式:
$ ./configure --with-mingw-cross-compiler=g++-mingw-w64-i686