1. add_compile_options(<option> ...) :可以給當前目錄以及當前目錄以下的目錄的 sources 添加編譯選項。
2. target_compile_definitions :
1 target_compile_definitions(<target> 2 <INTERFACE|PUBLIC|PRIVATE> [items1...] 3 [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
是給給定的 <target> 添加編譯選項, <target> 指的是由 add_executable() 產生的可執行文件或 add_library() 添加進來的庫。 <INTERFACE|PUBLIC|PRIVATE> 指的是 [items...] 選項可以傳播的范圍, PUBLIC and INTERFACE 會傳播 <target> 的 INTERFACE_COMPILE_DEFINITIONS 屬性, PRIVATE and PUBLIC 會傳播 <target> 的 COMPILE_DEFINITIONS 屬性。
3. add_definitions(-DFOO -DBAR ...) :可以給當前目錄以及當前目錄以下的目錄的 sources 添加編譯行命令。如 cmake . 這樣的在命令行輸入的命令。cmake的命令格式如下:
1 cmake [<options>] (<path-to-source> | <path-to-existing-build>) 2 cmake [(-D<var>=<value>)...] -P <cmake-script-file> 3 cmake --build <dir> [<options>] [-- <build-tool-options>...] 4 cmake -E <command> [<options>] 5 cmake --find-package <options>...
[<options>] 可以是 -C, -D, -U... 之類的選項,這個 add_definitions(-DFOO -DBAR ...) 函數可以添加任意選項,但主要是用來添加 -D 選項。