Visual Studio(VS)C++项目 管理第三方依赖库和目录设置

发现很多程序员存在这种做法:把项目依赖的第三方库的lib和dll放在项目目录下,或者复制到输出目录,因为每种配置都有不同的输出目录,所以要复制多份(至少包括Debug和Release两个输出目录),这些做法有很多弊端:

  • 放在项目目录下不能把项目自己的内容和第三方内容分开,这会导致一些混乱,比如不知道那些是自己的、哪些可以去官网更新
  • 复制到输出目录导致做配置管理的时候不能直接忽略输出目录,从而上传了垃圾文件到版本库
  • 复制多份违背配置管理的基本原则:一个东西只在一处

正确的做法是:

  • 严格区分自己的文件和第三方文件
  • 第三方文件独立目录存放
  • 运行配置独立目录存放
  • 程序输出独立目录存放

以上原则的主要目的是,能够用最简单的方式忽略不要入库的文件,符合以上原则只需要忽略几个目录即可。

为了实现以上目的,要知道VS的几个配置:

  • 【C/C++】组的【附加包含目录】,这个基本都知道,用来指定查询头文件的位置
  • 【链接器组】的【常规】的【附加库目录】,用来指定链接时寻找lib和dll的位置(注意不是运行时找dll的位置啊)
  • 【链接器组】的【输入】的【附加依赖项】,这就是要链接的库,大家都知道
  • 【生成事件】组的【生成后事件】,这是编译成功后执行的命令,直接写dos命令即可,比如把依赖的复制到输出目录,这样程序就可以运行了
  • 【调试】组的【工作路径】,默认值是项目路径,修改为依赖的dll所在的位置即可让程序跑起来,但是如果程序需要在工作路径输出文件啊、日志啊什么的,这就不一定合适了,违背了要入库的文件和不要入库的文件不能混在一起这个原则,所以要和生成后事件协作,让程序在合适的工作目录执行
  • 另外,多个项目共享的内容也可以直接放在解决方案下,放头文件、配置文件什么的是没有问题的

VS里面有一些常用的宏应该了解一下,比如【$(ProjectDir)】代表项目目录,很多配置项配置的时候旁边有个按钮【宏->】,点开就是所有可用的宏。

另外还有一个技巧:

VS的项目配置编辑的时候可以选择【所有配置】和【所有平台】,从而一次性修改所有配置。

相关的设置的位置:

(这里是结束)

相关推荐
new_zhou1 小时前
vs2019+qt工程中生成dump文件及调试
开发语言·qt·visual studio·dump调试
无限进步_20 小时前
【C语言&数据结构】对称二叉树:镜像世界的递归探索
c语言·开发语言·数据结构·c++·git·算法·visual studio
dlpay1 天前
Visual Studio 2022中使用websocketpp
c++·ide·visual studio·boost·websocketpp
无限进步_1 天前
【C语言&数据结构】相同的树:深入理解二叉树的结构与值比较
c语言·开发语言·数据结构·c++·算法·github·visual studio
无限进步_3 天前
【数据结构&C语言】对称二叉树的递归之美:镜像世界的探索
c语言·开发语言·数据结构·c++·算法·github·visual studio
hi0_63 天前
vibe coding 开发软件(一) 模型选择和agent简单使用
ide·个人开发·visual studio
abcd_zjq3 天前
VS2022+QT6.9配置ONNXruntime GPU、CUDA、cuDNN(附官网下载链接)(GPU开启代码示例)
qt·visual studio·cuda·onnx
MindCareers4 天前
Beta Sprint Day 5-6: Android Development Improvement + UI Fixes
android·c++·git·sql·ui·visual studio·sprint
tiandyoin4 天前
visual studio 克隆 github 时,如何保持行尾符与 github 一致
ide·github·visual studio
FL16238631294 天前
Visual Studio Installer无法启动安装程序。错误:系统找不到指定的文件。
ide·visual studio