Windows 32 ビット (MSVC++ を使用) で C++ でソフトウェアを開発していますが、すべてのプラットフォームでソフトウェアを使用できるようにしたいので、ビルド ジェネレーターとして CMake を使用することにしました。
したがって、私はまだ CMake の初心者です。CMake チュートリアルから、コードをクロス コンパイルするには、まずターゲット プラットフォームをシミュレートするツールチェーンをホスト プラットフォームにインストールする必要があることを理解しています。次に、このツールチェーンによって提供される適切なターゲット プラットフォームの C および C++ コンパイラを使用して、CMake は makefile などを生成できます。
今、Win32 プラットフォームで Linux プラットフォーム (GNU/Linux) 用のコードをビルドしたいと考えています。Cygwin と組み合わせた CMake を使用し、gcc と g++ をコンパイラとして使用して、上記の手順を実行してみました。正常にビルドされ、makefile が作成され、Cygwin ターミナルで「make」を実行すると、生成された makefile が「作成」されました。これで、Linux プラットフォームで実行することを望んでいた実行可能ファイルができました。しかし、Linux では次のエラーが表示されます。bash はバイナリ ファイルを実行できません。
コマンドファイル executablename を使用して、上記の手順で作成された実行可能ファイルは、Windows 専用の PE32 タイプであることがわかりました。
ここで私の質問は次のとおりです。cmake を使用したクロスプラットフォーム ビルド手順の理解は正しいですか?それとも、Windows で別の Linux ツールチェーンを使用して Linux ELF 実行可能ファイルを取得する必要がありますか? 私が欲しいものを提供してくれるツールチェーンは何ですか?
どうもありがとう
セタレ