Windows 32ビット(MSVC++を使用)でC++でソフトウェアを開発していますが、すべてのプラットフォームでソフトウェアを使用できるようにしたいので、私のビルドジェネレータとしてCMake。CMakeを使用してWindowsをターゲットとするクロスプラットフォームプラットフォーム
私はまだCMakeの初心者です。 CMakeチュートリアルから、私は、コードをクロスコンパイルするためには、最初にターゲットプラットフォームをシミュレートするツールチェーンをホストプラットフォームにインストールする必要があることを理解しています。次に、このツールチェーンが提供する適切なターゲットプラットフォームのCおよびC++コンパイラを使用して、CMakeはメイクファイルなどを生成することができます。
これで、Win32プラットフォーム上でLinuxプラットフォーム(GNU/Linux)用のコードを構築します。 Cygwinと組み合わされたCMakeとコンパイラとしてgccとg ++を使って上記の手順を実行しようとしました。それはきれいに作成されたmakefileを作成し、Cygwin端末で "make"を発行すると、生成されたmakefileは "作られました"。今、私はLinuxプラットフォーム上で動作することを望んでいた実行可能ファイルを持っています。しかしLinuxでは、私はエラーが発生します:bashはバイナリファイルを実行できません。
コマンドファイルexecutablenameを使用して、上記の手順で実行される実行可能ファイルが、Windows用のPE32型であることを認識しました。
私はcmakeを使用してクロスプラットフォームのビルド手順を理解していますか?また、Linux ELF実行ファイルを取得するために、Windowsの下で別のLinuxツールチェーンを使用するだけですか?私が欲しいものを私に与えるツールチェーンがあなたの心に浮かんでいますか?
感謝
Setareh
私はcmakeについてはわかりませんが、qmakeはさまざまなプラットフォーム用に「ビルドプロファイル」を持っています。多分、あなたはcmakeのドキュメントなどの "target platform"オプションを探してみるべきでしょう。 –
http://metamod-p.sourceforge.net/cross-compiling.on.windows.for.linux.html – stijn
[マシン上のqmakeのmkspecのリストの例](http://pastebin.com/raw.php ?@ = 3mMjgC9p) –