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

CMake二、带文件多文件编译

方法一

tool/tool.h

#include <iostream> using namespace std; class tool { public: tool(); ~tool(); void work(); };

tool/tool.cpp

#include "tool.h" tool::tool() { cout<<"tool 构造"<<endl; } tool::~tool() { cout<<"tool 析够"<<endl; } void tool::work() { cout<<"work 干活"<<endl; }

main.cpp

#include <iostream> #include "tool/tool.h" using namespace std; int main() { tool t; t.work(); cout<<"main已调用"<<endl; return 0; }

CMakeLists.txt

cmake_minimum_required(VERSION 3.5) #设置最低cmake版本 project(main_tool) #设置目标工程名字 add_executable(main_tool main.cpp tool/tool.cpp ) #生成可执行程序

方法二

对CMakeLists.txt做修改

cmake_minimum_required(VERSION 3.5) #设置最低cmake版本 project(main_tool) #设置目标工程名字 aux_source_directory(. CPPLIST1) #获取当前目录下的文件,赋值到CPP——LIST1 aux_source_directory(./tool CPPLIST2) #获取./tool目录下的文件,赋值到CPP——LIST2 add_executable(main_tool ${CPPLIST1} ${CPPLIST2}) #生成可执行程序

方法三

将tool文件生成.a

tool/CMakeLists.txt

aux_source_directory(. tool_file) #查找当前目录下的tool相关文件 add_library(tool1lib ${tool_file}) #将他们编译为一个叫tool1lib的文件

CMakeLists.txt

cmake_minimum_required(VERSION 3.5) #设置最低cmake版本 project(main_tool) #设置目标工程名字 aux_source_directory(. CPP_LIST) #搜索当前目录下的所有cpp文件 add_subdirectory(tool) #将tool文件夹加入子目录,这样他就可以去tool文件夹中查找编译 #[请进入 tool子目录,找到那里的 CMakeLists.txt文件,然后执行它。 简单说,就是包含另一个 CMakeLists.txt 文件,实现模块化构建。] add_executable(out_tool ${CPP_LIST}) #生成目标文件 target_link_libraries(out_tool tool1lib) #添加链接库,其库的名字由tool1文件夹中的CMakeLists.txt来指定生成

目录变化

http://www.jsqmd.com/news/495243/

相关文章:

  • 冷酷的兔先生是谁,以及我为什么只研究兔子降温
  • 2026年重庆挑选家具哪家性价比高?源点宜联购给出答案 - mypinpai
  • Maven多模块开发实战:从单体到微服务架构的优雅构建之路
  • AI聊天机器人安全漏洞:暴力诱导与风险警示
  • AI时代:被算法重塑的时间感知
  • COMSOL煤矿模型仿真合集:‘瓦斯抽采与热流固耦合、采空区耦合性分析、倾斜煤层下的采空区参数...
  • 力扣面试经典150 88. 合并两个有序数组 归并排序的merge函数
  • 众合食品包装多样化程度怎样,环保性能好不好值得推荐吗? - 工业品网
  • 2026年推荐凯鑫防火,山东地区便宜又靠谱的防火板施工之选 - 工业推荐榜
  • all-in-rag零散的笔记(自存/持续更新)
  • IntelliJ IDEA Maven 按钮区别详解:Reload vs Sync
  • 盘点2026年浙江值得选购的轻钢龙骨防火板吊顶,推荐优质施工服务 - 工业设备
  • 盒马鲜生购物卡回收攻略 - 团团收购物卡回收
  • 2026年 油冷机/水冷机厂家推荐排行榜:高效温控与稳定运行,工业冷却设备实力品牌深度解析 - 品牌企业推荐师(官方)
  • 洗地机刷盘电机精准选型指南
  • 2026年防火堵料加工厂价格大揭秘,昊优环保性价比高 - 工业品牌热点
  • 全网最全:万里通积分卡线上回收方法与渠道对比分析5大注意事项 - 团团收购物卡回收
  • 淄博靠谱的别墅加装电梯定制厂家选购要点有哪些? - myqiye
  • AI智能课堂系统源码:AI课程生成与在线教学管理解决方案
  • 参数调优
  • 揭秘京东e卡变现秘诀,这些回收渠道你知道吗? - 团团收购物卡回收
  • 讲讲新疆隧道防火涂料服务商哪个靠谱,价格怎样 - myqiye
  • 替代国外品牌,国内有稳定的变压器厂家吗?
  • 【MySQL】事务:如何使用事务
  • 马斯克点赞,Karpathy 转发!Kimi 一刀拆了 Transformer 十年地基
  • 2026年 硅胶带厂家推荐排行榜,蠕动泵/导电/医用级/食品级/双色/新能源/工业级/阻燃/弹簧/耐高温硅胶带,专业定制与高适配性深度解析 - 品牌企业推荐师(官方)
  • “数字员工”重构企业生产单元
  • Nginx与frp结合实现局域网和公网的双重https服务
  • 山东一卡通线上回收靠谱吗?回收心得分享与平台推荐 - 团团收购物卡回收
  • 2026年辽宁石棉垫片好用品牌排名,专业石棉垫片加工厂推荐 - 工业推荐榜