在cmake 3.12以前,添加編譯選項能夠以下方式添加linux
add_definitions("-Wall -g")
添加了以後,就至關於在編譯的時候加上了 -Wall -g
選項git
#沒加以前 gcc -c main.c -o test #添加以後,至關於 gcc -g -Wall -c main.c -o test
書中給出的示例以下:github
add_definitions(-DSomeSymbol /DFoo=Value ...) remove_definitions(-DSomeSymbol /DFoo=Value ...)
可是到cmake 3.12以後,最好使用編譯選項專用的添加方式:設計模式
add_compile_definitions(SomeSymbol Foo=Value ...)
經過指令bash
$ cmake --version cmake version 3.18.4 CMake suite maintained and supported by Kitware (kitware.com/cmake).
查看本身的cmake版本,如果在3.12以後的版本最好使用add_compile_definitions
函數,要是3.12以前的版本,只能使用add_definitions
或者直接設置變量的方式進行函數
這裏給出一個CMakeLists.txt
的小例子,這個小例子是在學習設計模式的時候編寫的一個用於編寫多個可執行小demo的cmake文件,所有工程包括設計模式源碼見:
23種設計模式cpp實現工程源碼地址
學習
# 針對cmake版本的要求 # cmake version 3.18.3 cmake_minimum_required(VERSION 3.5) project(cppDesignPatterns) add_definitions("-Wall -g") # 開閉原則 add_executable(open_close_principle open_close_principle.cpp) # 依賴顛倒原則 add_executable(reverse_dependencies reverse_dependencies.cpp) # 懶漢式單例模式 add_executable(sluggard_singleton sluggard_singleton.cpp) # 餓漢式單例模式 add_executable(hungry_singleton hungry_singleton.cpp) #target_include_directories( PUBLIC ./../lib)