我有一個項目,我想爲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