2017-04-22 73 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'應該specifiy編譯器,但標誌,例如,你可以用'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. 轉移變量緩存

    set(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER}" CACHE INTERNAL "") 
    
  2. 別看CMakeCache.txt,但是在編譯器鑑定結果存儲在文件:

    CMakeFilse/${CMAKE_VERSION}/CMakeCXXCompiler.cmake 
    
  3. 其輸出到stdout或文件:

    message(STATUS "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}") 
    
    file(WRITE "CMAKE_CXX_COMPILER.txt" "${CMAKE_CXX_COMPILER}") 
    
相關問題