這個錯誤“僅支持 Win32 目標”是否來自錯誤的 cc1plus?
我正在嘗試在 64 位 Debian linux 上為 32 位 Windows 交叉編譯Hyperion,但這樣做時遇到了一些問題。
首先,為了嘗試安裝交叉編譯器,我在 linux 上安裝了 mingw32。我不確定我是否安裝了正確的版本,因為有很多類似的軟體包。最終,我找到並閱讀了一個 readme.txt 並了解到 i686-w64-mingw32-gcc 應該是正確的 32 位 Windows C 編譯器,但是 i686-w64-mingw32-gcc 有兩個版本可能是什麼我正在尋找:i686-w64-mingw32-gcc 和 i686-w64-mingw32-gcc-win32。所以我選擇使用i686-w64-mingw32-gcc-win32。
接下來,它抱怨無法找到cc1plus。該文件的定位將我帶到 /usr/lib/gcc/x86_64-linux-gnu/5/。我繼續在 /usr/bin 上創建到 /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus 的軟連結。
之後,它抱怨缺少 windows.h。我將它定位在 /usr/i686-w64-mingw32/include/。在 CFLAGS 的路徑中添加 -I 選項後,我遇到了各種奇怪的錯誤。其中有以下一項:
/usr/i686-w64-mingw32/include/_mingw.h:264:2: error: #error 僅支持 Win32 目標!
現在,我被困住了。我不確定我做錯了哪一步。我懷疑它可能是我軟連結的錯誤 cc1plus,但如果那是錯誤的,我不知道如何獲得正確的版本。
您連結的
cc1plus
是普通 C++ 編譯器,而不是 Windows 交叉編譯器。您永遠不需要修復 GCC 的內部組件;該cc1plus
錯誤表示其他錯誤。在您的情況下,您需要安裝
mingw-w64
(apt-get install mingw-w64
)。這將安裝適用於 Windows 的 C 和 C++ 交叉編譯器以及相應的標頭檔和庫。然後i686-w64-mingw32
作為目標使用;i686-w64-mingw32-gcc
應該可以正常工作。(有關v. stuff的詳細資訊,請參閱README.Debian
in ;預設值應該適合您。)/usr/share/doc/gcc-mingw-w64-base``-win32``-posix