cmake项目使用导入静态库的方式添加源文件

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()
相关推荐
Luoxi_88 小时前
Anaconda超详细的安装教程+VScode的使用
ide·vscode·编辑器
球king10 小时前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
大龄牛码11 小时前
从模型基座到工程范式:GPT-5.6与Grok 4.5在主流AI IDE中的架构适配与选型分析
ide·人工智能·gpt
无糖冰可乐2111 小时前
安装wsl2,并链接Windows上的vscode运行项目
pytorch·vscode·python·pip
不负信仰12 小时前
Visual Studio 三月更新 —— 打造专属自定义 Agent
ide·visual studio
流量猎手15 小时前
Vscode登陆服务器
服务器·ide·vscode
HAPPY酷15 小时前
【ROS2】16G 内存笔记本跑 ROS2 仿真?VMware 虚拟机“保姆级”配置指南 (R9 7940HX + RTX 4060)
java·linux·ide·windows·pycharm
烽火聊员1 天前
查看Android Studio错误日志
android·ide·android studio
ljs6482739511 天前
Linux运维实操:vi编辑器永久配置静态IP(CentOS系列)
linux·运维·编辑器
CyL_Cly1 天前
解决官网下载慢!Android Studio 最新版网盘下载
android·ide·android studio