我有一个项目,我想为Windows编译。我有合适的makefile,一切都适用于g ++。我运行apt-get install mingw32
,下载了一个100-ish MB的软件包,但是我找不到如何真正运行它。没有mingw32
可执行文件,也不能在互联网上找到任何帮助,那么我如何真正编译它?MinGW在Linux上交叉编译
回答
如果看到dpkg -L mingw32
的输出结果,可以看到该软件包包含一个工具链,即一组替代工具(编译器,链接器等),可用于编译另一个系统中的代码。
您必须使用/usr/bin/i586-mingw32msvc-g++
才能编译您的代码。如果我没记错的话,存在一个变量来告诉Makefile使用这样的工具链。
工具链没有变量,但可以分别为C和C++编译器设置变量:CC和CXX。 –
另一种选择是看看Mingw Cross Environment(MXE),它专门针对从Linux到Windows(以及最近也是Mac)的交叉编译。该软件包支持许多库,并且正在积极开发中。只要看看网站,看看它是否适合您的需求。
顺便说一下,建议您使用开发而不是发布版本。这是因为发布版本通常非常快速过期,这是由于程序包维护人员(库的)更改了URL,从而导致MXE发布版本中断。开发版本通常更新。
在网站上没有提及Mac?这看起来很整洁,我对此很陌生,所以我猜你的工具首先创建了“交叉编译器”,然后我只需使用你创建的工具链来编译东西。 – CMCDragonkai
嗯,这不是“我的”,但它就是这么做的。不知道有关Mac支持的当前状态(我在一段时间内没有使用mxe)。过去有人提到他们正在寻求支持,但我不知道它是否已经实施。 – Bart
我用这个交叉编译Postgres的:
$ sudo apt-get install mingw-w64
$ ./configure --host=i686-w64-mingw32 --without-zlib # 32 bit
# or --host=x86_64-w64-mingw32 64 bit
裁判here
其他项目采取不同的方式,喜欢的ffmpeg:
./configure --target-os=mingw32 --cross-prefix=i686-w64-mingw32-
或一些
./configure CC=i686-w64-mingw32-gcc ...
等GL!
- 1. 在linux上交叉编译C++ 11个线程与mingw
- 2. 在Linux上使用mingw交叉编译Direct3D
- 3. 库问题和Mingw-gcc在Linux上交叉编译Win32代码
- 4. 交叉编译用mingw在Linux上运行一个pthread
- 5. 与mingw交叉编译libtheora
- 6. qt5.4在Linux上的windows交叉编译
- 7. 在Windows上交叉编译Linux
- 8. 在Windows和Linux上交叉编译
- 9. 交叉编译源到Linux
- 10. Qt Windows + Linux交叉编译
- 11. Linux交叉编译库
- 12. 交叉编译Linux主机
- 13. 与mingw交叉编译gdi工具
- 14. 使用CMake与MinGW交叉编译OpenCV
- 15. 与Mingw-w64交叉编译CGAL
- 16. 在Linux上与mingw-w64交叉编译时发生冲突的声明
- 17. 使用MinGW在Fedora上交叉编译GTK
- 18. 在ccs上交叉编译
- 19. 在Windows上交叉编译?
- 20. 寻找Linux上的Win exe所需的DLL(与mingw交叉编译)?
- 21. 如何在linux中交叉编译
- 22. 在Linux上用MinGW编译Gnu11 for Windows
- 23. 如何在Windows上从PS3上为Cell Linux交叉编译?
- 24. 从OS X交叉编译到Linux
- 25. 为linux arm目标交叉编译greenlet
- 26. 从arch linux交叉编译pdcurses到windows
- 27. 交叉编译为ARM-Linux的
- 28. 交叉编译Raspberry Pi的Linux内核
- 29. 升压 - 交叉编译 - “从Linux”“到Windows”
- 30. 使用cygwin交叉编译到arm-linux
如果您从终端运行以下命令,它应该告诉您编译器的可执行文件(本例中为g ++)。然后,您可以适当地编辑您的生成文件。 “locate mingw | grep g ++” – thedaver64
是否使用autotools生成'Makefile'? – gipi
@gipi我真的不记得了,我为我的项目使用cmake。 – thedaver64