2017-04-22 78 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}") 
    
相关问题