コードスニペット:メイクファイル内のCXXの値はどこから来ますか?
target_test : test.cc
$(CXX) $(CPPFLAGS) $(CFLAGS) test.cc
私はCXX
は(呼び出すためのコンパイラコマンドを含む)の変数ですが、この変数はどこから来るのか、私が思っていたことを知っています。この変数はmakefileで定義されておらず、環境変数ではありません。誰でもCXX
の値はどこから来るのか説明できますか?
コードスニペット:メイクファイル内のCXXの値はどこから来ますか?
target_test : test.cc
$(CXX) $(CPPFLAGS) $(CFLAGS) test.cc
私はCXX
は(呼び出すためのコンパイラコマンドを含む)の変数ですが、この変数はどこから来るのか、私が思っていたことを知っています。この変数はmakefileで定義されておらず、環境変数ではありません。誰でもCXX
の値はどこから来るのか説明できますか?
メイクはCC
あり、その中predefined variablesいくつかを持っています。最初は、インストールされCコンパイラへのシンボリックリンクであるcc
に設定されています
$ readlink -f `which cc`
/usr/bin/gcc-4.6
また:
$ readlink -f `which c++`
/usr/bin/g++-4.6
したい場合は、それを変更することができます。
make -p -f /dev/null
を使用すると、すべての暗黙のルールと変数のリストを取得できます。私は非標準のインストールがあり、出力は英語ではないので、今すぐ出力を表示することはできません。
CXXはGNU makeの暗黙の変数です。 There are others too。
これらの暗黙の変数は、implicit rulesで使用されます。
n.o
C++プログラムをコンパイルフォーム
のレシピ とn.cc
、n.cpp
、又はn.C
から自動的に行われる:ここはCXXが暗黙のルールで使用される方法に関連する抽出物であります
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
。
「。C」の代わりにC++のソースファイルに接尾辞「.cc」を使用することをお勧めします。
CXX
の値はどこから来るのですか?他の「マジック」variabes(LD
、RM
、MAKE
)と同様
、それはメイクによって内部あらかじめ定義されています。
これは、ユーザーが上書きできる変数で、デフォルト値はg++
(GNU Make版以上)です。それ以上のことはありません(ファイルやそのようなものには定義されていません)。
例:$ make -p -f/dev/null | grep CXXは次のようになります。 CXX = g ++ – ady