CMake:搜索文件和指定头文件目录(三)

1、搜索文件

如果一个项目中的源文件很多,在编写CMakeLists.txt文件的时候不可能将项目目录的各个文件一一罗列出来,这样麻烦也不现实。所以在CMake中为我们提供了搜索文件的命令,可以使用aux_source_directory命令或者file命令

1.1、aux_source_directory命令

在CMake中使用aux_source_directory命令可以查找某个文件夹下的所有源文件,命令格式如下

# aux_source_directory(<dir> <variable>)
# dir:要搜索的目录
# variable:将dir目录搜索结果的源文件列表存储到该变量中

cmake_minimum_required(VERSION 3.10.2)

# 指定标准
set(CMAKE_CXX_STANDARD 14)

# 指定源文件列表
aux_source_directory(${PROJECT_SOURCE_DIR}/src src_list)

# 生成可执行程序
add_executable(main ${src_list})

# 生成目标路径, 在当前目录下bin文件夹下
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
  • aux_source_directory(${PROJECT_SOURCE_DIR}/src src_list):搜索当前项目根目录下src文件夹下的所有源文件,搜索结果存储到src_list变量中
  • add_executable(main ${src_list}):生成可执行程序main,依赖src_list源代码
  • set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin):可执行程序放到当前项目根目录下的bin目录下
1.2、file命令
  • 刚才的命令是直接搜索某个目录下的所有源代码文件

  • 而file命令可以搜索目录下指定类型的文件

cmake_minimum_required(VERSION 3.10.2)

# 指定头文件目录
include_directories(${PROJECT_SOURCE_DIR}/inc)

# 指定标准
set(CMAKE_CXX_STANDARD 14)

# 搜索CMakeLists.txt所在目录下src文件夹下的所有*.cpp文件,结果存储到src_list中
file(GLOB src_list ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
# file(GLOB src_list "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")

# 生成可执行程序
add_executable(main ${src_list})

# 生成目标路径, 在当前目录下bin文件夹下
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
2、指定头文件目录
  • 当头文件和源代码不在一个文件夹下,需要在源代码中引入头文件具体的位置或者指定头文件的路径

    # 指定头文件目录
    include_directories(${PROJECT_SOURCE_DIR}/inc)
    
    • include_directories:指定头文件的目录

    • PROJECT_SOURCE_DIR:宏,表示当前项目的根目录

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值