当前位置: 首页 > news >正文

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

1.源文件

参照cmake项目使用递归CmakeLists.txt的方式添加源文件

先构建项目结构

2.修改

1.修改main.cpp

修改include源文件的方式为

#include"message.h"#include"sort_algorithms.h"

2.修改CMakeLists.txt

添加如下行

# 主程序直接依赖消息/排序工具库和链表工具库。target_link_libraries(${PROJECT_NAME}PRIVATE message_utils sort_utils)

3.修改src/utils/message/CMakeLists.txt

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

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()
http://www.jsqmd.com/news/1158574/

相关文章:

  • Cobalt Strike 4.8监听器配置进阶:从核心原理到实战避坑指南
  • 同步FIFO设计对比:单口RAM方案 vs 双口RAM方案,资源与性能实测
  • 无源 vs 有源高通滤波器:5 个关键指标对比与 2 个典型应用场景选择
  • MAXON麦克森S390系列燃烧控制器——工业燃烧安全与效率的守护者
  • 美度官方售后服务中心地址电话实地考察报告_多信源验证(2026年7月更新) - 亨得利官方服务中心
  • 亲身到店探访杭州亨得利官方名表服务中心|完整地址及服务热线(2026年7月更新) - 亨得利官方
  • ELRS 3.x 固件升级与对频实战:WiFi/串口 2 种方法解决 915MHz 与 2.4GHz 兼容
  • 2026年大同合同纠纷律师推荐:5位擅长加盟租赁的专业能手 - 本地品牌推荐
  • OpenClaw Windows 11一键部署:小白也能跑通的本地智能体框架
  • 0.6秒实时翻译!亲爱的翻译官聚焦智能翻译手表
  • Windows 事件日志深度清理脚本 (保留今年数据 + 清理旧归档)
  • SystemWeaver 功能安全与网络安全双合规:ISO 26262 与 ISO/SAE 21434 的 5 个集成实践
  • 0 开始学习 AI 测试 - 从接口测试来教你如何用 AI 来生成自动化测试代码
  • 2026年7月甘肃K9 级球墨铸铁管/甘肃离心球墨铸铁管靠谱制造商推荐_甘肃中源瑞峰管业有限公司 - 品牌宣传支持者
  • 滞回比较器电路仿真:Multisim 14 实测传输特性曲线,阈值电压误差 < 2%
  • STM32F103 DMA 串口发送优化:512字节缓冲区实现10ms高频数据零阻塞
  • 亨得利官方名表服务中心|完整地址及官方售后热线权威信息通告(2026年7月最新) - 亨得利官方博客
  • 终极指南:PVZ Toolkit植物大战僵尸修改器完整使用手册
  • 2026年7月风电螺栓/联轴器螺栓厂家品牌推荐_芜湖皖拓机械科技有限公司 - 品牌宣传支持者
  • 越华环保集团污水设备资质体系:面向可靠交付的技术信用架构解析
  • 硬质合金刀具扩散磨损实战分析:800℃下W/C元素流失的抑制方案
  • OpenDesign Analytics SDK vs 传统监控工具:为什么它更适合现代前端
  • MATLAB 2023a 车牌识别系统:从75%到90%识别率的3个关键算法优化
  • 2026襄阳正规漏水检测维修权威推荐-卫生间漏水免砸砖维修/厨房阳台墙面暗管漏水检测/屋顶外墙堵漏维修-防水补漏公司实测口碑榜推荐 - 即刻修防水
  • [特殊字符]Bash 高效神器:mapfile 命令详解,一行读取文件到数组
  • 2026年7月最新重庆江津区几江街道亨得利官方名表服务中心电话公示 - 亨得利钟表维修中心
  • NTP v4 协议实战:C语言实现3步获取网络时间,误差<100ms(附完整代码)
  • Unity网格优化实战:MeshFusion Pro核心原理与性能提升指南
  • 2026年7月矿山螺栓/石油螺栓工厂推荐盘点_芜湖皖拓机械科技有限公司 - 行业平台推荐
  • MP2315GJ-Z AAM模式解析:轻载效率提升15%的电阻配置与实测对比