1.源文件
参照cmake项目使用递归CmakeLists.txt的方式添加源文件
先构建项目结构
2.修改
1.修改main.cpp
修改include源文件的方式为
cpp
#include "message.h"
#include "sort_algorithms.h"
2.修改CMakeLists.txt
添加如下行
cpp
# 主程序直接依赖消息/排序工具库和链表工具库。
target_link_libraries(${PROJECT_NAME}
PRIVATE
message_utils
sort_utils
)
3.修改src/utils/message/CMakeLists.txt

cpp
file(GLOB MESSAGE_UTILS_SOURCES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cc"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cxx"
"${CMAKE_CURRENT_SOURCE_DIR}/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/*.hpp"
)
add_library(message_utils STATIC
${MESSAGE_UTILS_SOURCES}
)
target_include_directories(message_utils
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
)
# 自动扫描并添加所有子文件夹
file(GLOB ALL_ENTRIES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*"
)
foreach(ENTRY ${ALL_ENTRIES})
if(IS_DIRECTORY ${ENTRY})
get_filename_component(DIR_NAME ${ENTRY} NAME)
add_subdirectory(${DIR_NAME})
endif()
endforeach()
4.修改src/utils/sort/CMakeLists.txt

cpp
file(GLOB SORT_UTILS_SOURCES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cc"
"${CMAKE_CURRENT_SOURCE_DIR}/*.cxx"
"${CMAKE_CURRENT_SOURCE_DIR}/*.h"
"${CMAKE_CURRENT_SOURCE_DIR}/*.hpp"
)
add_library(sort_utils STATIC
${SORT_UTILS_SOURCES}
)
target_include_directories(sort_utils
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
)
# 自动扫描并添加所有子文件夹
file(GLOB ALL_ENTRIES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/*"
)
foreach(ENTRY ${ALL_ENTRIES})
if(IS_DIRECTORY ${ENTRY})
get_filename_component(DIR_NAME ${ENTRY} NAME)
add_subdirectory(${DIR_NAME})
endif()
endforeach()