CMake获取目录下所有源文件

1、aux_source_directory指令
        aux_source_directory(< dir > < variable >)
比如:

        aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这种方式就容易出问题,所有我很少使用这种方式。

2、file指令,我通常使用这种方式

比如:

        file(GLOB ALL_SOURCE "*.cpp" "*.c")

        file(GLOB ALL_HEAD "*.hpp" "*.h")

        这样就将当前目录所有的源文件都放在了ALL_SOURCE变量中,所有的头文件放在了ALL_HEAD中。

        另外,file里面的第一个参数若使用GLOB_RECURSE,不仅能包括当前目录的文件,也可以包括当前目录子目录下面的文件,比如:

         file(GLOB_RECURSE ALL_SOURCE "*.cpp" "*.c")

         file(GLOB_RECURSE ALL_HEAD "*.hpp" "*.h")

        采用这种方式需要注意编译程序时,临时创建的build目录不要放在CMakeLists.txt文件的同目录或者子目录下,因为cmake在编译过程中也会产生临时的cpp文件,这样这些临时文件又被包括进去,就会报错,所以需要在外层目录编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值