LinuxからWindowsへのC ++アプリケーションのクロスコンパイルのマニュアル
-
06-07-2019 - |
質問
C ++アプリケーションをLinuxからWindowsにクロスコンパイルするためのマニュアルはありますか?
それだけ。いくつかの情報(リンク、リファレンス、例...)がそれを行うように私をガイドしてほしい。
それが可能かどうかさえわかりません。
目標は、Linuxでプログラムをコンパイルし、Windowsで実行できる.exeファイルを取得することです。
解決
基本はそれほど難しくありません:
sudo apt-get install mingw32
cat > main.c <<EOF
int main()
{
printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe
apt-get
を yum
またはLinuxディストリビューションが使用するものに置き換えます。これにより、Windows用の hello.exe
が生成されます。
問題を回避したら、 autotools を使用できます。 、および CC = i586-mingw32msvc-cc
CC=i586-mingw32msvc-cc ./configure && make
または CMakeとツールチェーンファイルを使用してビルドを管理します。さらに難しいのは、ネイティブのクロスライブラリを追加することです。通常、これらは / usr / cross / i586-mingw32msvc / {include、lib}
に保存され、ビルドプロセスの構成ステップでそれらのパスを個別に追加する必要があります。
他のヒント
それはあなたの意味に依存します(私は本当に言うことができませんでした)。
-
Windowsで既存のLinuxアプリケーションを使用する場合は、 Cygwin 。ただし、これによりCygwinへのすべての依存関係から解放されたWindows実行可能ファイルが得られるわけではありません(実行可能ファイルは依然として
cygwin.dll
ファイルに依存しています)。 http://www.cygwin.com を参照してください。 -
Linux上でWindowsアプリケーションの実際のコンパイルを実行し、Windows上で実行可能な.exeファイルを生成できるようにする場合-したがって、開発やコンパイルにLinuxボックスを使用する場合Linux上のWindows用のクロスコンパイルツールであるLinux用の MinGW を確認する必要があります。 http://www.mingw.org/wiki/LinuxCrossMinGW を参照してください。
よろしく!
次をお勧めします。 GUB (Grand Unified Builder)をクロスコンパイルします。依存関係のあるいくつかのパッケージは、現在11のアーキテクチャ向けに単一のインストールパッケージにアセンブルします。 こちら、ソースこちらをフォローしてください。現在、GNU LilyPond / GNU Denemo / InkscapeおよびOpenOffice.orgのクロスコンパイルに使用できます。
ターゲットアーキテクチャは次のとおりです。
- darwin-ppc-Darwin 7(MacOS 10.3)/ PowerPC用のtar.bz2ファイル
- darwin-x86-Darwin 8(MacOS 10.4)/ x86用のtar.bz2ファイル
- mingw-Windows32用のmingw実行可能ファイル
- linux-x86-Linux / x86用のsharアーカイブ
- linux-64-Linux / x86_64のsharアーカイブ
- linux-ppc-Linux / PowerPC用のsharアーカイブ
- freebsd-x86-FreeBSD 4 / x86のsharアーカイブ
- freebsd-64-FreeBSD 6 / x86_64のsharアーカイブ
- cygwin-Cygwin / Windows32用の.tar.bz2パッケージ
- arm-Linux / ARMのsharアーカイブ(ほとんどテストされていません)
- debian-Debianのsharアーカイブ(ほとんどテストされていません)