目錄
一、獲取編譯器信息
1.與編譯器交互
(1)CMake變量
(2)CMakeLists.txt
二、設(shè)置編譯器
一、獲取編譯器信息
????????Microsoft Windows上,如果cmake生成器是Visual Studio,將選擇Visual Studio中 的 C++ 和 C 編譯器。
CMake提供 --system-information 標(biāo)志,它將把關(guān)于系統(tǒng)的所有信息轉(zhuǎn)儲(chǔ)到屏幕或文件中:
cmake --system-information information.txt
information.txt部分信息如下,可以看到CMAKE_CXX_COMPILER和CMAKE_C_COMPILER的默認(rèn)值。
1.與編譯器交互
(1)CMake變量
CMake提供了額外的變量來與編譯器交互:
- CMAKE_<LANG>_COMPILER_LOADED:如果為項(xiàng)目啟用了語言<LANG>,則將設(shè)置為 TRUE 。
- CMAKE_<LANG>_COMPILER_ID:編譯器標(biāo)識(shí)字符串,編譯器供應(yīng)商所特有。例如, GCC 用于 GNU編譯器集合, AppleClang 用于macOS上的Clang,MSVC 用于Microsoft Visual Studio編譯器。注意,不能保證為所有編譯器或語言定義此變量。
- CMAKE_COMPILER_IS_GNU:如果語言<LANG>是GNU編譯器集合的一部分,則將此邏輯變量設(shè)置為 TRUE 。注意變量名的<LANG>部分遵循GNU約定:C語言為 CC , C++語言為 CXX , Fortran語言為 G77 。
- CMAKE_<LANG>_COMPILER_VERSION:此變量包含一個(gè)字符串,該字符串給定語言的編譯器版本。版本信息在 major[.minor[.patch[.tweak]]] 中給出。注意,不能保證所有編譯器或語言都定義了此變量。
(2)CMakeLists.txt
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(getinfo)
message(STATUS "is the C++ compiler loaded? ${CMAKE_CXX_COMPILER_LOADED}")
if(CMAKE_CXX_COMPILER_LOADED)
message(STATUS "C++ compiler id: ${CMAKE_CXX_COMPILER_ID}")
if(CMAKE_COMPILER_IS_GNUCXX)
message(">CMAKE_COMPILER_IS_GNUCXX")
else()
message(">CMAKE_COMPILER_IS_NOT_GNUCXX")
endif()
message(STATUS "C++ compiler version is: ${CMAKE_CXX_COMPILER_VERSION}")
endif()
message(STATUS "is the C compiler loaded? ${CMAKE_C_COMPILER_LOADED}")
if(CMAKE_C_COMPILER_LOADED)
message(STATUS "C compiler id: ${CMAKE_C_COMPILER_ID}")
if(CMAKE_COMPILER_IS_GNUCC)
message(">CMAKE_COMPILER_IS_GNUCC")
else()
message(">CMAKE_COMPILER_IS_NOT_GNUCC")
endif()
message(STATUS "C compiler version is: ${CMAKE_C_COMPILER_VERSION}")
endif()
配置輸出:
二、設(shè)置編譯器
????????CMake將語言的編譯器存儲(chǔ)在 CMAKE_<LANG>_COMPILER 變量中,其中<LANG>是受支持的任何一種語言,比如?CXX 、 C 或 Fortran 。用戶可以通過以下兩種方式之一設(shè)置此變量(配置時(shí),CMake會(huì)進(jìn)行一系列平臺(tái)測(cè)試,以確定哪些編譯器可用,以及它們是否適合當(dāng)前的項(xiàng)目,一個(gè)合適的編譯器不僅取決于我們所使用的平臺(tái),還取決于我們想要使用的生成器。)
1. 使用CLI中的 -D 選項(xiàng)(推薦使用)文章來源:http://www.zghlxwxcb.cn/news/detail-438847.html
> cmake -D CMAKE_CXX_COMPILER=clang++ ..
2. 通過導(dǎo)出環(huán)境變量 CXX (C++編譯器)、 CC (C編譯器)和 FC (Fortran編譯器)。文章來源地址http://www.zghlxwxcb.cn/news/detail-438847.html
#使用這個(gè)命令使用 clang++ 作為 C++ 編譯器
> env CXX=clang++ cmake ..
到了這里,關(guān)于CMake I 獲取/設(shè)置編譯器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!