2012-09-18 5 views
25

私はCMakeの初心者ですが、私はgccとg ++の間でどのようにCMakeがコンパイラを選ぶことができるのかをLINUX環境のC++/Cプロジェクトに疑問を抱いていました。具体的には、次のように私の質問は以下のとおりです。CMakeはどのようにgccとg ++をコンパイルするのですか?

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

答えて

12

まもなく、両方にはい。

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

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

  1. Change compiler/toolset
  2. Per-language extensions
  3. LANGUAGE variable

注:ウィキは古いかもしれないが、それは重要な教育問題の場合に保持する必要があります。

PS。関連するオプションがたくさんあります。より長い読書のために、文書の以下のセクションを確認することができます:Properties on Source FilesVariables for Languages。これらのセクションから来てください。

+0

有効な言語オプションは何ですか?具体的には、LANGUAGEとは何ですか? Ubuntu LinuxでObjective-C++(.mmファイル)を使用するには? – gone

+0

これはまったく異なる質問です。あなたは別にそれを求めてください。特に私はObjective-C++について何も知らないので)。問題は、デフォルトでサポートされているかどうかわかりません。そうでない場合は、すべての変数をすべて* * *変数に設定する必要がありますが、必要に応じて変数名を選択することになります。 – luk32

10

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

この動作を変更するのは簡単です。 CMakeは環境変数を使用して、使用するコンパイラを確認します。コンパイラをたとえばに変更したい場合は、打ち鳴らすと打ち鳴らす++、あなただけ行うことができます

輸出CC =打ち鳴らす 輸出CXX =打ち鳴らす++ cmakeのを実行する前に

関連する問題