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

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

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

正确的做法是:

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

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

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

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

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

另外还有一个技巧:

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

相关的设置的位置:

(这里是结束)

相关推荐
这是我588 小时前
C++打小怪游戏
c++·其他·游戏·visual studio·小怪·大型·怪物
cgsthtm19 小时前
Visual studio Debug调试webservice 使用ip代替localhostt配置IIS Express
android studio·visual studio·webservice·真机调试·iis express
小王爱吃月亮糖20 小时前
C++进阶-1-单继承、多继承、虚继承
开发语言·c++·笔记·学习·visual studio
故苏呦2 天前
Visual Studio Code 快捷键
visual studio code·visual studio
妙为2 天前
在 Visual Studio 2022 中,将 if 语句的风格从 K&R 风格(即大括号各占一行)改为紧凑风格(即大括号与条件语句同行)
ide·visual studio
爱进步3 天前
离线安装Visual Studio 2022
ide·visual studio
weixin_497845543 天前
Visual Studio 、 MSBuild 、 Roslyn 、 .NET Runtime、SDK Tools之间的关系
ide·.net·visual studio
无心道人c3 天前
VS项目,在生成的时候自动修改版本号
visual studio
ZhangChuChu_92483 天前
VS2022(Visual Studio)中显示行数(c#)
ide·c#·visual studio
无情时尚4 天前
VisualStudio vsix插件自动加载
ide·visual studio