40

Linux から Windows へ C++ アプリケーションをクロスコンパイルするためのマニュアルはありますか?

それだけ。それを行うためのガイドとなる情報 (リンク、参照、例など) が必要です。

それが可能かどうかさえわかりません。

私の目的は、Linux でプログラムをコンパイルし、Windows で実行できる .exe ファイルを取得することです。

4

3 に答える 3

52

基本はそれほど難しくありません:

sudo apt-get install mingw32    
cat > main.c <<EOF
int main()
{
  printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe

、またはLinuxディストリビューションが使用するものにapt-get置き換えます。yumこれにより、Windows用のが生成さhello.exeれます。

頭を悩ませたら、autotoolsを使用して設定できますCC=i586-mingw32msvc-cc

CC=i586-mingw32msvc-cc ./configure && make

または、CMakeとツールチェーンファイルを使用してビルドを管理します。さらに難しいのは、ネイティブクロスライブラリを追加することです。通常、これらはに保存され/usr/cross/i586-mingw32msvc/{include,lib}、ビルドプロセスの構成ステップでこれらのパスを個別に追加する必要があります。

于 2008-10-08T12:21:42.073 に答える
6

それはあなたが何を意味するかによります(私は本当に言えませんでした)。

  1. Windows で既存の Linux アプリケーションを使用する場合は、Windows でCygwinを使用してコンパイルしてみてください。ただし、これにより、Cygwin に対するすべての依存関係から解放された Windows 実行可能ファイルが得られるわけではありません (実行可能ファイルは依然としてcygwin.dllファイルに依存しています)。http://www.cygwin.comを参照してください。

  2. Linux 上で Windows アプリケーションの実際のコンパイルを実行し、Windows 上で実行可能な .exe ファイルを生成できるようにしたい場合、つまり開発やコンパイルに Linux ボックスを使用する場合は、MinGWを調べる必要があります。 Linux 上の Windows 用のクロスコンパイル用ツールである Linux。http://www.mingw.org/wiki/LinuxCrossMinGWを参照してください。

よろしくお願いします!

于 2008-10-08T12:25:02.330 に答える
4

次のGUB (Grand Unified Builder)を試してみることをお勧めします。これは、いくつかのパッケージをそれらの依存関係とともにクロスコンパイルし、現在11のアーキテクチャーの単一のインストールパッケージにアセンブルするためです。ここからVMにインストールするためのビルド済みISOをダウンロードし、ここからソースをたどることができます。現在、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アーカイブ(ほとんどテストされていません)
于 2010-08-25T23:15:43.130 に答える