cmake--編譯器設置

前言html

cmake支持多種不一樣方式設置編譯器標誌:ui

1.使用 target_compile_definitions()設置編譯器標誌htm

2. 使用CMAKE_C_FLAGS和CMAKE_CXX_FLAGS設置編譯標誌blog

一, 目錄結構作用域

├── CMakeLists.txt
├── main.cppget

* link:CMakeLists.txt[] - Contains the CMake commands you wish to run
* link:main.cpp[] - The source file with main編譯器

二,cmake腳本it

cmake_minimum_required(VERSION 3.5)io

# 設置默認C++編譯標誌
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEX2" CACHE STRING "Set C++ Compiler Flags" FORCE)編譯

project (compile_flags)

add_executable(cmake_examples_compile_flags main.cpp)

# 使用target_compile_definitions設置編譯標誌

target_compile_definitions(cmake_examples_compile_flags
PRIVATE EX3
)

三,擴展分析

現代cmake(modern cmake)推薦使用target_compile_definitions設置C++編譯標誌。

由於target_compile_definitions可以設置編譯標誌的做用域,關鍵字INTERFACE,PUBLIC和PRIVATE用來指定其後參數的做用域。

PRIVATE 和 PUBLIC 項將產生 <target> 的 COMPILE_DEFINITIONS 屬性。PUBLIC 和 INTERFACE 項將產生 <target> 的INTERFACE_COMPILE_DEFINITIONS 屬性。

而若是設置了CMAKE_CXX_FLAGS或CMAKE_C_FLAGS標誌將使得當前目錄以及子目錄下全部的編譯標誌都爲該標誌。

下面這篇文章還包含一些其餘編譯命令。

http://www.javashuo.com/article/p-bknpjceh-ma.html

相關文章
相關標籤/搜索