当前位置: 首页 > 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.gsyq.cn/news/109506.html

相关文章:

  • 2025蒸馏水品牌Top推荐:实验室级与工业级怎么选 - 品牌推荐大师1
  • 2025 年 12 月净化车间悬臂吊厂家权威推荐榜:洁净空间高效吊装解决方案与耐用品质深度解析 - 品牌企业推荐师(官方)
  • Centos8网络配置小工具
  • WebUI在智能客服系统中的落地实践
  • AI一键生成JDK 17环境配置脚本,告别手动安装
  • 2025 年 12 月便携式EL检测仪厂家权威推荐榜:高效精准的光伏组件隐裂探测利器深度解析 - 品牌企业推荐师(官方)
  • 告别手动diff!Git补丁生成效率提升300%的技巧
  • 清华镜像站提供的TensorRT相关Debian包汇总
  • Seed-Coder-8B-Base实战:高效构建机器学习Pipeline
  • Java新手必学:equals和hashCode入门指南
  • 开篇灵魂拷问:你的行业该怎么备案?​
  • AI一键搞定ComfyUI安装:告别复杂配置
  • Linux面试小白必看:从零到Offer的20个核心命令
  • 2025桥架快速连接技术革新榜:六大创新厂商高效解决方案深度解析,揭秘行业领先安装工艺 - 品牌企业推荐师(官方)
  • USB设备VID与PID标识对照表
  • 传统VS现代:AI如何让Linux面试准备效率提升300%
  • 3分钟搞定Docker服务问题:比传统排查快10倍
  • 2025年干燥设备厂家排行榜:五大批发商权威测评,JFG-C系列高效沸腾干燥机/多功能动态干燥机/干燥设备制造商口碑推荐 - 品牌推荐师
  • OOP实验五
  • 34、拯救与优化Windows系统的实用指南
  • 智能体支付需要信任:在 Walrus 上将 AI 智能体转变为经济主体
  • 火山引擎AI大模型生态中,Anything-LLM的定位与发展前景
  • Dify平台支持多种数据库连接的配置方式汇总
  • 2025年国内正规的多媒体讲台电教桌供应厂家排名,多媒体讲台电教桌源头厂家哪家权威 - 品牌推荐师
  • 宠物用品行业智能客服:痛点破解与发展路径
  • nn.Sequential vs 手动构建:效率对比实验
  • 小红书代运营服务商排行榜TOP10,短视频代运营团队/短视频代运营/抖音代运营/抖音推广/小红书代运营小红书代运营源头厂家排行榜单 - 品牌推荐师
  • 传统开发vsAI生成:扫雷游戏开发效率对比
  • linux安装kkFileView和libreOffice
  • Java程序员必看:不用学Python,四步转型AI应用工程师(建议收藏)