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

C++笔记19 多项目 - 静态链接

一、创建多项目

  1. 创建空项目Game
  2. 在 Solution Game 下add Project: Engine
  3. 在 Show ALl Files模式下 创建src目录
  4. 设置Game 属性:General --> Configuration Type = Application (.exe)
  5. 设置Engine 属性:General --> Configuration Type = Static library (.lib)
  6. Game/src 新增 Application.cpp
  7. Engine/src新增 Engine.h
#pragma oncenamespace engine {void PrintMessage();
}
  1. Engine/src新增 Engine.cpp
#include "Engine.h"
#include <iostream>namespace engine {void PrintMessage() {std::cout << "Hello World" << std::endl;}
}
  1. 指定Game项目编译器包含目录:Game : C/C++ --> General --> Additional Include Directories: $(SolutionDir)Engine\src (注意:是括号,不是大括号)

  2. 在Application.cpp 中引入Engine.h : #include "Engine.h"

  3. 当前一步项目还没有链接,我们并没有链接到库。build Engine项目,会生成1> Engine.vcxproj -> E:\workspace\CPlusPlusDev\Game\x64\Debug\Engine.lib , 是在整体的Solution解决方案目录下,而不是具体的Engine项目目录下。

  4. Game --> Add --> Reference , 选中 Engine, OK保存。(这会吧Engine.lib文件链接到我们的可执行文件中,就像我们把它添加到链接器输入一样,也给我们提供了额外的好处:除了不用处理链接设置输入文件之外,如果我们改变了Engine项目的名字,比如:Core, 我们需要在链接器设置那里改变名字:Engine.lib --> Core.lib。但如果我们像这样使用Reference,则不需要手动修改,因为是自动关联识别的。)

  5. Engine现在是Game的依赖,意味着Engine内部的某些东西发生了变化,然后我们去编译Game,Games实际上会编译Engine和Game,蓑衣的意思我们总是在编译最新代码,而不是忘记编译Engine,然后各种不能用。

  6. Game Solution 右键 clean Solution,然后 build game, 或build整体的game solution, 会看到首先build Engine,因为依赖它。

  7. 生成Game.exe 文件,即便是被复制到了其他目录,点击运行时也可以运行。因为所有的东西冬放到了这个Game.exe文件中了,没有外部文件依赖。

选中Show All Files

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

相关文章:

  • 基于springboot和vue的家庭理财预算系统_m5323xn3(java毕业设计项目源码)
  • Qwen-Image-Edit-2509模型能上手机吗?
  • 广东珠海供电局:广东电网公司首单境外企业购买中国绿证交易落地 助力中国绿证“走出去” - 资讯焦点
  • 基于springboot + vue大学新生报到系统(源码+数据库+文档)
  • 2025蒸馏水品牌Top推荐:实验室级与工业级怎么选 - 品牌推荐大师1
  • 用PlotJuggler和AI打造智能数据分析工作流
  • Centos8网络配置小工具
  • C语言之统计天数
  • 2025电缆桥架厂家实力排行榜:六家国产技术先锋企业以高强度防火技术领跑,深度解析本土品牌核心优势与行业趋势 - 品牌企业推荐师(官方)
  • 稳健收益的增额寿产品推荐 - 资讯焦点
  • 电商系统实战:解决多语言数据存储的字符集冲突
  • WebUI在智能客服系统中的落地实践
  • AI一键生成JDK 17环境配置脚本,告别手动安装
  • GPT-SoVITS API开发:本地到云端部署全指南
  • 2025 年 12 月便携式EL检测仪厂家权威推荐榜:高效精准的光伏组件隐裂探测利器深度解析 - 品牌企业推荐师(官方)
  • 为什么站群泛目录系统一定需要统一后台?科普说明
  • 24小时挑战:用快马构建VM17密钥共享平台
  • GPT-OSS-20B高并发压力测试与优化指南
  • 彩绘陶质文物艺术品的保护与修复应用
  • Perf工具入门指南:5分钟学会基础性能分析
  • 如何用AI自动修复MIME类型错误?快马平台实战
  • 纯棉卫生巾怎么选?4款实力派,让经期更安心 - 速递信息
  • 中文文档处理最佳实践:Anything-LLM支持UTF-8编码上传与解析
  • 企业级JDK8部署实战:快马批量安装方案
  • 告别手动diff!Git补丁生成效率提升300%的技巧
  • 电商订单处理的Spring Batch实战案例
  • 清华镜像站提供的TensorRT相关Debian包汇总
  • Java新手必学:equals和hashCode入门指南
  • Seed-Coder-8B-Base实战:高效构建机器学习Pipeline
  • AI一键搞定ComfyUI安装:告别复杂配置