Linux下CMake简明教程(九) 添加控制选项
生活随笔
收集整理的這篇文章主要介紹了
Linux下CMake简明教程(九) 添加控制选项
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
代碼在git
有時希望在編譯代碼時只編譯一些指定的源碼,可以使用cmake的option命令,主要遇到的情況分為2種:
- 本來要生成多個bin或庫文件,現(xiàn)在只想生成部分指定的bin或庫文件
- 對于同一個bin文件,只想編譯其中部分代碼(使用宏來控制)
第1種情況
- 假設(shè)我們現(xiàn)在的工程會生成2個bin文件,main1和main2,現(xiàn)在整體結(jié)構(gòu)體如下,
外層的CMakeLists.txt內(nèi)容如下
cmake_minimum_required(VERSION 3.5) project(demo) option(MYDEBUG "enable debug compilation" OFF) set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) add_subdirectory(src)這里使用了option命令,其第一個參數(shù)是這個option的名字,第二個參數(shù)是字符串,用來描述這個option是來干嘛的,第三個是option的值,ON或OFF,也可以不寫,不寫就是默認OFF。
然后編寫src目錄下的CMakeLists.txt,如下
cmake_minimum_required (VERSION 3.5)add_executable(main1 main1.c)if (MYDEBUG)add_executable(main2 main2.c) else()message(STATUS "Currently is not in debug mode") endif()注意,這里使用了if-else來根據(jù)option來決定是否編譯main2.c
其中main1.c和main2.c的內(nèi)容如下,
然后cd到build目錄下輸入cmake … && make就可以只編譯出main1,如果想編譯出main2,就把MYDEBUG設(shè)置為ON,再次輸入cmake … && make重新編譯。
每次想改變MYDEBUG時都需要去修改CMakeLists.txt,有點麻煩,其實可以通過cmake的命令行去操作,例如我們想把MYDEBUG設(shè)置為OFF,先cd到build目錄,然后輸入cmake … -DMYDEBUG=ON,這樣就可以編譯出main1和main2 (在bin目錄下)
總結(jié)
以上是生活随笔為你收集整理的Linux下CMake简明教程(九) 添加控制选项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下CMake简明教程(八) 添
- 下一篇: DBoW2 cmake代码注释