クロスコンパイルをしようとしています。ハイペリオン64ビットDebian Linuxで32ビットWindowsを実行しますが、いくつかの問題があります。
まず、クロスコンパイラをインストールしようとしてLinuxにmingw32をインストールしました。同様のパッケージが多いため、正しいバージョンがインストールされているかどうかはわかりません。結局私はreadme.txtを見つけて読んで、i686-w64-mingw32-gccが正しい32ビットWindows Cコンパイラと見なされますが、i686-w64-mingw32-gccには2つのバージョンがあることがわかりました。私が探しているもの: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のバグかもしれないと思います。しかし、それが間違っている場合、正しいバージョンを取得する方法がわかりません。
ベストアンサー1
cc1plus
Windowsクロスコンパイラではなく、通常のC ++コンパイラに接続しています。 GCCの内部を変更する必要はありません。このcc1plus
エラーは別の問題を示します。
あなたの場合はインストールが必要ですmingw-w64
(apt-get install mingw-w64
)。これにより、Windows用のCおよびC ++クロスコンパイラと対応するヘッダファイルとライブラリがインストールされます。その後、i686-w64-mingw32
目標としてうまくi686-w64-mingw32-gcc
機能します。 (v.の内容の詳細についてはを参照してくださいREADME.Debian
。デフォルト値は適切です。)/usr/share/doc/gcc-mingw-w64-base
-win32
-posix