39

私は CMake の初心者であり、CMake が gcc と g++ の間でコンパイラを選択する方法を LINUX 環境の C++/C プロジェクトで考えていました。より具体的には、私の質問は次のとおりです。

  1. プロジェクトが .c ファイルと .cpp ファイルで構成されている場合、.c ファイルは gcc でコンパイルされ、.cpp ファイルは g++ でコンパイルされるというのは本当ですか?
  2. プロジェクトに c ファイルまたは cpp ファイルしかない場合、CMake のデフォルトのコンパイル操作は何ですか? それを変更することは可能でしょうか?
4

2 に答える 2

20

まもなく、両方にイエスです。

ほとんどすべてのものを台無しにすることができます。拡張機能を言語にバインドするフラグと変数があります。次に、ツールセットとビルド ターゲットを定義するコンパイラ オプション/実行可能ファイルへの言語。

ドキュメントへの次のリンクを確認してください。それらはいくつかの楽しい短い読み物です。

  1. コンパイラ/ツールセットの変更
  2. 言語ごとの拡張機能
  3. LANGUAGE 変数

注: wiki は古くなっている可能性がありますが、重要で教育的な問題の場合に備えて保持する必要があります。

PS。関連するオプションがたくさんあります。より長い読み物については、ドキュメントの次のセクションを確認できます: Properties on Source Files and Variables for Languages。2. と 3. はこれらのセクションから来ています。

于 2012-09-18T11:15:22.657 に答える
15

私の知る限り、CMake はファイル拡張子のみを調べます。したがって、.c ファイルの名前を .cpp に変更すると、私の知る限り、g++ でコンパイルされます。

その行動を変えるのは簡単です。CMake は環境変数を使用して、使用するコンパイラを確認します。コンパイラを clang や clang++ などに変更したい場合は、次のようにします。

エクスポート CC=clang エクスポート CXX=clang++

cmake を実行する前に。

于 2012-09-18T10:27:38.253 に答える