2011-03-16 228 views
6

我已經下載了MinGW與mingw-get-inst,現在我已經注意到它無法編譯爲x64。MinGW GCC - 單個32位和64位交叉編譯器?

那麼,有沒有32位二進制版本MinGW的編譯器既能編譯32位Windows,也爲64位Windows的?

我不想要一個可以生成32位代碼的64位版本,因爲我希望編譯器也能在32位Windows上運行,而我只在這裏尋找預編譯的二進制文件,而不是源文件,因爲我花了無數個小時編譯GCC並失敗了,而且我放棄了一段時間。 :(

+0

顯然這是因爲mingw-w64不支持multilib。看到http://stackoverflow.com/questions/17345584/mingw64-cannot-compile-32bit-code – 2015-04-09 19:46:40

回答

5

AFAIK MinGW的目標是32位Windows或64位的Windows,而不是兩個,所以你會需要兩個安裝。而後者仍然被認爲是測試版。

對於你想要的東西或者是mingw-w64-bin_i686-mingwmingw-w64-bin_i686-cygwin,如果你想爲Windows編譯64.對於Win32,只需使用你使用MinGW-GET-研究所獲得。

文件名的說明,請參見http://sourceforge.net/apps/trac/mingw-w64/wiki/download%20filename%20structure

+0

嗯,我不能有東西,目標兩者? '-m64'標誌是做什麼的?我無法讓它工作,但似乎它應該能夠做到這樣的事情...... – Mehrdad 2011-03-16 16:13:43

+3

你可以用win64編譯器試試-m32。 – hirschhornsalz 2011-03-16 16:21:01

+0

是的,但是,除了它仍然是64位的事實,它無論如何都不起作用:我有一些庫我有一些不匹配或版本錯誤(現在沒有我的錯誤文本)認爲。 – Mehrdad 2011-03-16 16:25:15

3

我意識到這是一個老問題。然而,它與問題重複的次數有關。

經過大量研究發現,到現在爲止,幾年之後,在從存儲庫安裝mingw時,通常默認安裝兩個編譯器(即,突觸)。

您可以檢查和運行Linux的定位命令來驗證:

$ locate -r "mingw32.*[cg]++$" 

在我的Ubuntu(13.10)安裝我默認以下編譯器可供選擇......通過發出locate命令找到。

/usr/bin/amd64-mingw32msvc-c++ 
/usr/bin/amd64-mingw32msvc-g++ 
/usr/bin/i586-mingw32msvc-c++ 
/usr/bin/i586-mingw32msvc-g++ 
/usr/bin/i686-w64-mingw32-c++ 
/usr/bin/i686-w64-mingw32-g++ 
/usr/bin/x86_64-w64-mingw32-c++ 
/usr/bin/x86_64-w64-mingw32-g++ 

最後,你必須在許多系統上做最小運行:

$ sudo apt-get install gcc-mingw32 

我希望很多鏈接到這個網頁可以抽出很多的程序員的一些搜索時間。

相關問題