如何在Visual Studio中配置C++项目间的相互引用
解决C++项目复用为库的「unresolved external symbol」问题
第一步:把你的小型项目编译成库文件
在VS2022里直接这么操作:
- 右键原项目 → 属性 → 配置属性 → 常规 → 项目默认值 → 配置类型,选「静态库(.lib)」或者「动态库(.dll)」
- 删掉原项目里的
main函数——库不需要入口函数,留着反而会冲突 - 重新编译原项目,输出目录会生成对应的
.lib(静态库)或者.lib+.dll(动态库)文件
第二步:给新项目配置链接依赖
省心方案(同解决方案内)
- 在解决方案里右键新项目 → 添加 → 引用 → 勾选你的库项目
- 这一步VS会自动处理头文件路径和库的链接,不用手动调一堆配置
手动配置(库不在同解决方案)
- 右键新项目 → 属性 → 配置属性 → 链接器 → 常规 → 附加库目录:填你的库项目生成的
.lib所在路径,比如$(SolutionDir)MyLib\x64\Debug - 接着到「链接器 → 输入 → 附加依赖项」,把库的
.lib文件名加进去,比如MyLib.lib
第三步:实现功能文件夹的直接引用
要做到#include "Math/xxx.h"这种便捷调用:
- 把库项目的根目录设为新项目的「附加包含目录」,而不是单个子文件夹
- 库项目里按功能分文件夹,比如
Math、Map,每个文件夹下放对应的头文件和源文件 - 如果是动态库,要在类或函数前加
__declspec(dllexport)导出(静态库不用这步)
必踩坑提醒
- 新项目和库项目的Debug/Release配置、x64/x86平台必须完全一致,不然肯定会出链接错误
- 用动态库的话,运行新项目时要把生成的
.dll文件放到新项目的输出目录,或者加到系统环境变量里
内容的提问来源于stack exchange,提问作者Collin
相关产品推荐
相关产品推荐

