四时宝库

程序员的知识宝库

【CMake】(5)搜索文件(cmake cannot find source file)

方法1:使用auxsourcedirectory命令

aux_source_directory命令用于查找指定目录下的所有源文件,并将文件列表存储到一个变量中。这种方法简单易用,适合于源文件位于单一目录下的情况。

基本语法如下:

aux_source_directory(<dir> <variable>)
  • <dir>:指定要搜索的目录。
  • <variable>:用于存储搜索到的文件列表的变量。

示例:

cmake_minimum_required(VERSION 3.0)
project(MyProject)
include_directories(${PROJECT_SOURCE_DIR}/include)

# 搜索 src 目录下的所有源文件
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)

# 根据搜索到的源文件创建可执行文件
add_executable(app ${SRC_LIST})

方法2:使用file命令的GLOB或GLOB_RECURSE选项

file命令的 GLOBGLOB_RECURSE选项提供了更灵活的文件搜索功能。 GLOB选项用于搜索指定模式的文件,而 GLOB_RECURSE选项会递归搜索指定模式的文件。

基本语法如下:

file(GLOB/GLOB_RECURSE <variable> <path-to-search>)
  • <variable>:用于存储搜索到的文件列表的变量。
  • <path-to-search>:指定搜索路径和文件类型。

示例:

cmake_minimum_required(VERSION 3.0)
project(MyProject)

# 搜索当前目录的src目录下所有的.cpp源文件
file(GLOB MAIN_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")

# 搜索当前目录的include目录下所有的头文件
file(GLOB MAIN_HEAD "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h")

# 根据搜索到的源文件和头文件创建可执行文件
add_executable(app ${MAIN_SRC} ${MAIN_HEAD})

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接