2017-10-22 5 views
0

私は制御されたビルド環境でビルドにCMakeを採用したいが、これらのシステムにCMakeをインストールすることはできません。ツールチェインファイル(https://cmake.org/Wiki/CMake_Cross_Compiling)を使用してクロスコンパイルする方法の詳細については、リソースを参照してください。異なるビルドホスト用のツールチェインファイルの使用

このテクニックを使って、1つのシステムでCMakeを実行して、別のビルドホストで使用するMakefileをビルドすることはできますか?どんな落とし穴も詳しく説明しているリソースはありますか? Arm Linuxからz/OSまで、多くのプラットフォームでLinux上でmakefileを生成します。

+0

2つのコメント:CMakeの "クロスコンパイル"の1つは、環境を生成するためにCMakeを実行しているPC/OSに "クロスコンパイラ"がインストールされていることを意味します。だから、別のPC/OS環境用に何かを生成することはできません。もう一つは、CMakeをインストールする必要はありません。それは自己完結しており、たとえば次のように実行できます。ソースコントロールイメージから取得します。 – Florian

+0

@Florianはい、私が説明していることは「クロスコンパイル」ではないということです。私はそれを避けることができれば、Z/OSとAIXの非常に古いバージョンでCMakeを構築しようとするのを避けたいと思います。私がそれが密接に関連しているかもしれないと思った理由であるクロスコンパイル時に、ホスト環境チェックを有効にするフラグの言及があるようです。 – NerdGGuy

+1

それが可能であっても、CMakeが生成したビルドツリーを別の場所に移動することはできません。 [CMakeのFAQ:CMakeがフルパスを使うのはなぜですか?または自分のビルドツリーをコピーできますか?](https://cmake.org/Wiki/CMake_FAQ#Why_does_CMake_use_full_paths.2C_or_can_I_copy_my_build_tree.3F) – Florian

答えて

1

CMakeのための答え

  1. 「クロスコンパイル」に私のコメントを回すと、環境を生成するために、CMakeのを実行しているPC/OSにインストールされている「クロス・コンパイラ」が存在しなければならないことを意味します。

    他のPC/OS環境用のmakefile。

  2. CMakeで生成されたビルドツリーを別の場所に移動することはできません。

    CMake's FAQ: Why does CMake use full paths, or can I copy my build tree?

を参照してください。注意:あなたはCMakeのをインストールする必要はありません。それは自己完結しており、たとえば次のように実行できます。ソースコントロールイメージから取得します。したがって、CMakeを実行するための管理者権限は必要ありません。

関連する問題