cmake--編譯器設置


前言

cmake支持多種不同方式設置編譯器標志:

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

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

一, 目錄結構

├── CMakeLists.txt
├── main.cpp

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

二,cmake腳本

cmake_minimum_required(VERSION 3.5)

# 設置默認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標志將使得當前目錄以及子目錄下所有的編譯標志都為該標志。

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

https://www.cnblogs.com/the-capricornus/p/4766331.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM