2017-04-22 10 views
0

CMakeはCMAKE_C_COMPILER/CMAKE_CXX_COMPILER,を使用できますが、新しいバージョンのCMakeではこれらの変数をCMakeCache.txtに設定しません。変数が設定されていないときにCMakeのC/C++コンパイラコマンドを使用する方法は?

変数が設定されていない場合、CMakeがプロジェクトのコンパイラを呼び出すために使用するC/C++コマンドにアクセスする方法はありますか?

これは、CMakeがコンパイラを呼び出すために使用するC/C++パスを意味しています。


私はソースファイルをコンパイルするために使用されるコンパイラのコマンドを知っている必要がありますメイクドライランの出力を、スキャンツールを書いたので尋ねます。

+0

「コマンド」とはどういう意味ですか? 'CMAKE_CXX_COMPILER'はコンパイラを指定すべきですが、例えば' SET(CMAKE_CXX_FLAGS "-O2 -O3 $ {CMAKE_CXX_FLAGS}") 'で指定することができます。 [役立つかもしれません](http://www.vtk.org/Wiki/CMake_Useful_Variables#Compilers_and_Tools)あなたが何をしたいのか、より多くの情報を書いてください。 – Sklert

+0

@Sklert、私は単にコンパイラコマンドについて質問しています: '/ usr/bin/cc'は、フラグではなく、なぜ私がフラグに言及しなかったのかです。質問で明確にされた。 – ideasman42

答えて

0

多くの方法(1)(2)があります。スキャンしないと思うかもしれませんが、必要なものを直接出力できます。ファイル(3)。

  1. CMakeCache.txtを見てはいけないキャッシュ

    set(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER}" CACHE INTERNAL "") 
    
  2. に変数を転送するが、コンパイラの同定結果が保存されているファイルで:

    CMakeFilse/${CMAKE_VERSION}/CMakeCXXCompiler.cmake 
    
  3. 出力にそれをstdoutまたはファイル:

    message(STATUS "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}") 
    
    file(WRITE "CMAKE_CXX_COMPILER.txt" "${CMAKE_CXX_COMPILER}") 
    
関連する問題