1、aux_source_directory指令
????????aux_source_directory(< dir > < variable >)
比如:
????????aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE)?, 這樣將當(dāng)前目錄所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE變量中,但是頭文件并沒有被包括進去,若在頭文件有函數(shù)的實現(xiàn)部分,采用這種方式就容易出問題,所有我很少使用這種方式。
2、file指令,我通常使用這種方式
比如:
????????file(GLOB ALL_SOURCE?"*.cpp" "*.c")
????????file(GLOB ALL_HEAD?"*.hpp" "*.h")
????????這樣就將當(dāng)前目錄所有的源文件都放在了ALL_SOURCE變量中,所有的頭文件放在了ALL_HEAD中。
? ? ? ? 另外,file里面的第一個參數(shù)若使用GLOB_RECURSE,不僅能包括當(dāng)前目錄的文件,也可以包括當(dāng)前目錄子目錄下面的文件,比如:
?????????file(GLOB_RECURSE ALL_SOURCE?"*.cpp" "*.c")
? ? ? ? ?file(GLOB_RECURSE ALL_HEAD?"*.hpp" "*.h")文章來源:http://www.zghlxwxcb.cn/news/detail-614697.html
? ? ? ? 采用這種方式需要注意編譯程序時,臨時創(chuàng)建的build目錄不要放在CMakeLists.txt文件的同目錄或者子目錄下,因為cmake在編譯過程中也會產(chǎn)生臨時的cpp文件,這樣這些臨時文件又被包括進去,就會報錯,所以需要在外層目錄編譯文章來源地址http://www.zghlxwxcb.cn/news/detail-614697.html
到了這里,關(guān)于CMake獲取目錄下所有源文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!