cmake_minimum_required(VERSION3.0)project(MyProject)include_directories(${PROJECT_SOURCE_DIR}/include)# 搜索 src 目录下的所有源文件aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/srcSRC_LIST)# 根据搜索到的源文件创建可执行文件add_executable(app${SRC_LIST}) 方法2:使用file命令的GLOB或GLOB_RECURS...
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/base DEMO_SRCS) add_executable(demo ${DEMO_SRCS}) 即将当前base目录下的所有源文件,存储为DEMO_SRCS并指定添加。 但是,aux_source_directory()无法递归子目录收集源文件。如果我们需要指定某一个目录下(包括子目录)的所有源文件,可以使用file(GLOB_RECURSE),...
aux_source_directory aux_source_directory 命令以非递归的形式,搜索指定文件夹下的源文件。 aux_source_directory(${PROJECT_SOURCE_DIR}SOURCES) 以上aux_source_directory 语句大致相当以下 file 语句(因为源文件拓展名可能有多种,故只说大致相当而不是完全一致)。 file(GLOBSOURCES${PROJECT_SOURCE_DIR}/*.cpp)...
aux_source_directory(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR} SRC_LIST)然而,当需要更灵活的搜索功能,比如搜索特定模式的文件或进行递归搜索时,file命令的GLOB和GLOB_RECURSE选项就显得更为强大。GLOB用于搜索符合特定模式的文件,例如`.cpp`或`.h`,而GLOB_RECURSE则会深入子目录,寻找符合模式的文件...
aux_source_directory 不会递归包含子目录,仅包含指定的dir目录 在路径下增加源文件后,需要手动重新运行cmake,原因是在被搜索的路径下添加源文件,不需要修改CMakeLists脚本,构建系统不能察觉到新加的文件,如不手动运行cmake,新添加的文件就不会被编译。
# CMake 最低版本号要求cmake_minimum_required(VERSION2.8)# 项目信息project(main)# 查找当前目录下的所有源文件# 并将名称保存到 DIR_SRCS 变量aux_source_directory(. DIR_SRCS)# 指定生成目标add_executable(main${DIR_SRCS}) 3.2.2 cmake 现在执行cmake .就能得到一个CMake为我们自动生成的Makefile。这...
aux_source_directory(<dir> <variable>) 搜集所有在指定路径下的源文件的文件名,将输出结果列表储存在指定的<variable>变量中。该命令主要用在那些使用显式模板实例化的工程上。模板实例化文件可以存储在Templates子目录下,然后可以使用这条命令自动收集起来;这样可以避免手工罗列所有的实例。
(GLOB_RECURSESRC_LIST"*.cpp")#递归搜索FILE(GLOBSRC_PROTOCOLRELATIVE"protocol""*.cpp")# 相对protocol目录下搜索add_library(demo ${SRC_LIST}${SRC_PROTOCOL_LIST})# 或者aux_source_directory(.SRC_LIST)aux_source_directory(protocolSRC_PROTOCOL_LIST)add_library(demo ${SRC_LIST}${SRC_PROTOCOL_LIST...
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular) 生成可执行文件 add_executable(${PROJECT_NAME}${DIR_SRCS}) 生成库文件 add_library(${PROJECT_NAME}STATIC ${DIR_SRCS})add_library(${PROJECT_NAME}SHARED ${DIR_SRCS}) ...