Visual Studio(VS)C++项目 管理第三方依赖库和目录设置
发现很多程序员存在这种做法:把项目依赖的第三方库的lib和dll放在项目目录下,或者复制到输出目录,因为每种配置都有不同的输出目录,所以要复制多份(至少包括Debug和Release两个输出目录),这些做法有很多弊端:
- 放在项目目录下不能把项目自己的内容和第三方内容分开,这会导致一些混乱,比如不知道那些是自己的、哪些可以去官网更新
- 复制到输出目录导致做配置管理的时候不能直接忽略输出目录,从而上传了垃圾文件到版本库
- 复制多份违背配置管理的基本原则:一个东西只在一处
正确的做法是:
- 严格区分自己的文件和第三方文件
- 第三方文件独立目录存放
- 运行配置独立目录存放
- 程序输出独立目录存放
以上原则的主要目的是,能够用最简单的方式忽略不要入库的文件,符合以上原则只需要忽略几个目录即可。
为了实现以上目的,要知道VS的几个配置:
- 【C/C++】组的【附加包含目录】,这个基本都知道,用来指定查询头文件的位置
- 【链接器组】的【常规】的【附加库目录】,用来指定链接时寻找lib和dll的位置(注意不是运行时找dll的位置啊)
- 【链接器组】的【输入】的【附加依赖项】,这就是要链接的库,大家都知道
- 【生成事件】组的【生成后事件】,这是编译成功后执行的命令,直接写dos命令即可,比如把依赖的复制到输出目录,这样程序就可以运行了
- 【调试】组的【工作路径】,默认值是项目路径,修改为依赖的dll所在的位置即可让程序跑起来,但是如果程序需要在工作路径输出文件啊、日志啊什么的,这就不一定合适了,违背了要入库的文件和不要入库的文件不能混在一起这个原则,所以要和生成后事件协作,让程序在合适的工作目录执行
- 另外,多个项目共享的内容也可以直接放在解决方案下,放头文件、配置文件什么的是没有问题的
VS里面有一些常用的宏应该了解一下,比如【$(ProjectDir)】代表项目目录,很多配置项配置的时候旁边有个按钮【宏->】,点开就是所有可用的宏。
另外还有一个技巧:
VS的项目配置编辑的时候可以选择【所有配置】和【所有平台】,从而一次性修改所有配置。
相关的设置的位置:


(这里是结束)
相关文章:
Visual Studio(VS)C++项目 管理第三方依赖库和目录设置
发现很多程序员存在这种做法:把项目依赖的第三方库的lib和dll放在项目目录下,或者复制到输出目录,因为每种配置都有不同的输出目录,所以要复制多份(至少包括Debug和Release两个输出目录),这些做…...
leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)
2578. 最小和分割 - 力扣(LeetCode) 给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中所…...
自定义实现图片裁剪
要实现这个功能,首先需要创建一个自定义的View,然后在该View中绘制背景框和裁剪后的图片。以下是一个简单的实现: 1. 创建一个名为CustomImageView的自定义View类,继承自View: import android.content.Context; impor…...
开发语言工具编程系统化教程入门和初级专辑课程上线
开发语言工具编程系统化教程入门和初级专辑课程上线 学习编程捷径:(不论是正在学习编程的大学生,还是IT人士或者是编程爱好者,在学习编程的过程中用正确的学习方法 可以达到事半功倍的效果。对于初学者,可以通过下面…...
【Truffle】二、自定义合约测试
一、准备测试 上期我们自己安装部署了truffle,并且体验了测试用例的整个测试流程,实际开发中,我们可以对自己的合约进行测试。 我们首先先明白自定义合约测试需要几个文件 合约文件:既然要测试合约,肯定要有合约的源码…...
场景交易额超40亿,海尔智家三翼鸟开始收获
文 | 螳螂观察 作者 | 余一 随着双十一的到来,国内的消费情绪再次被点燃。在这类大促之下,品牌们就像一个个天体,不断引动着市场潮汐,期待自己能触发更大的“海潮效应”。 所谓“海潮效应”是指,海水因天体的引力而…...
众和策略可靠吗?股票扛杆怎么玩?
可靠 股票扛杆是一种出资战略,经过假贷资金来增加出资金额,从而进步出资收益。这种战略在股票商场中被广泛运用,但一起也伴随着一定的危险。在本文中,咱们将从多个视点来剖析股票扛杆怎么玩。 首要,扛杆出资的原理是…...
解决连接Mysql出现ERROR 2013 (HY000): Lost connection to MySQL server at ‘waiting
在上一篇中解决Mysql ER_ACCESS_DENIED_ERROR: Access denied for user ‘root‘‘localhost‘ (using password: YES)-CSDN博客 写了mysql的密码报错问题,在执行 mysql -u root -p 出现了这个错误, ERROR 2013 (HY000): Lost connection to MySQL se…...
Hadoop YARN功能介绍--资源管理、调度任务
Hadoop YRAN介绍 YARN是一个通用资源管理系统平台和调度平台,可为上层应用提供统一的资源管理和 调度。 他的引入为集群在利用率、资源统一管理和数据共享等方面带来了好处。 1.资源管理系统 集群的硬件资源,和程序运行无关,比如内存、cu…...
从AlexNet到chatGPT的演进过程
一、演进 AlexNet(2012): AlexNet是深度学习领域的重要突破,包括5个卷积层和3个全连接层。使用ReLU激活函数和Dropout正则化,获得了ImageNet图像分类比赛的胜利。引入了GPU加速训练,大幅提高了深度神经网络…...
Unity如何实现bHaptics TrackSuit震动衣的SDK接入
前言 TrackSuit是bHaptisc公司旗下的一款震动衣,包括X16,X40等不同型号,是一款尖端的无线高级触觉背心,采用人体工程学设计,具有40个精确的触觉反馈点。通过无缝的跨平台支持和无限制、无滞后的游戏体验,增强您的VR冒险体验。用于PC或者VR游戏中高度还原真实射击触感。官…...
识别flink的反压源头
背景 flink中最常见的问题就是反压,这种情况下我们要正确的识别导致反压的真正的源头,本文就简单看下如何正确识别反压的源头 反压的源头 首先我们必须意识到现实中轻微的反压是没有必要去优化的,因为这种情况下是由于偶尔的流量峰值,Task…...
Spring是如何解决bean循环依赖的问题的
在Spring框架中,循环依赖是指两个或多个Bean之间相互依赖,形成了一个闭环的依赖关系。当存在循环依赖时,Bean的创建过程会陷入死循环,导致应用程序无法启动或出现异常。 说到循环依赖,首先我先说说bean的三级缓存 在S…...
[移动通讯]【Carrier Aggregation-9】【 Radio Resource Control (RRC) Aspects】
前言: CA 分析辅助工具: UE Capabilities 目录: 总体流程 Radio Resource Control (RRC) Aspects SCell addition and removal Handover 一 总体流程 1.1 CA 总体流程 1.2 CA 和 NSA 区别 NSA 我理解也是一种特殊的CA 方案&…...
故障预测与健康管理(PHM)的由来以及当前面临的挑战
故障预测与健康管理(PHM)作为一项关键技术,旨在帮助企业在事故发生之前较长时间内实现故障预测与健康管理,达到“治未病”的效果。PHM的发展源于对设备可靠性和安全性的追求,以及对预测性维护的需求。然而,…...
【ChatGPT瀑布到水母】AI 在驱动软件研发的革新与实践
这里写目录标题 前言内容简介作者简介专家推荐读者对象目录直播预告 前言 计算机技术的发展和互联网的普及,使信息处理和传输变得更加高效,极大地改变了金融、商业、教育、娱乐等领域的运作方式。数据分析、人工智能和云计算等新兴技术,也在不…...
【Django】项目模型
Django的基本命令 django-admin 命令含义startproject启动Django项目startapp启动Django应用check检查项目完整性runserver本地运行项目shell进入Django项目的Python Shell环境test 进行Django用例测试makemigrations创建模型变更的迁移文件migrate执行makemigrations…...
字符集详解
常见字符集介绍 字符集基础知识: 计算机底层不可以直接存储字符的。 计算机中底层只能存储二进制(0、1) 。 二进制是可以转换成十进制的。 结论:计算机底层可以表示成十进制编号。计算机可以给人类字符进行编号存储,这套编号规则就是字符…...
Vert.x学习笔记-什么是Vert.x
Vert.x介绍 用官网的一句话来总结:Vert.x是用于在JVM上构建响应式应用程序的工具包,项目初期的目标是成为“JVM版的Node.js”,但是后续的发展逐渐偏离了初期的目标,变成了一个给JVM提供量身定制的异步编程基础框架的工具包。 Ver…...
AcWing 第127场周赛 构造矩阵
构造题目,考虑去除掉最后一行最后一列先进行考虑,假设除了最后一行和最后一列都已经排好了(你可以随便排),那么分析知最后一个数字由限制以外其他都已经确定了,无解的情况是k为-1 并且n,m的奇偶…...
告别‘自消’:深入浅出聊聊协方差矩阵重建与对角加载如何拯救你的波束形成器
告别‘自消’:深入浅出聊聊协方差矩阵重建与对角加载如何拯救你的波束形成器 雷达工程师老张盯着屏幕上的波束图皱起了眉头——明明仿真时完美的指向性波束,在实际测试中却像被"咬掉一块"的月饼,目标信号区域出现了诡异的凹陷。这种…...
5分钟搞定!NewGAN-Manager终极配置指南:让Football Manager游戏体验焕然一新
5分钟搞定!NewGAN-Manager终极配置指南:让Football Manager游戏体验焕然一新 【免费下载链接】NewGAN-Manager A tool to generate and manage xml configs for the Newgen Facepack. 项目地址: https://gitcode.com/gh_mirrors/ne/NewGAN-Manager …...
机器学习中的过拟合与欠拟合:如何解决模型泛化问题
在人工智能技术飞速发展的当下,机器学习模型在软件测试领域的应用愈发广泛,从自动化测试用例生成到缺陷预测,再到性能瓶颈分析,都离不开机器学习的助力。然而,模型的泛化能力始终是制约其在实际测试场景中发挥作用的关…...
收藏!小白程序员轻松入门大模型向量检索,一篇搞懂核心技术与调优
RAG 召回很垃?搜索很慢?停,先别急着换模型,你的向量检索可能该升级了!本文将从基础,到核心参数调优,一文打通 RAG向量检索场景,相信看完本文,你会对向量检索有一个更完整…...
从CRUD到高薪:收藏这份程序员升级大模型学习指南,抓住AI时代红利!
作者分享个人从普通程序员通过学习AI大模型实现薪资翻倍的经历。文章指出,AI时代程序员最危险的不是被AI取代,而是重复低水平代码工作而不自知。作者从ChatGPT出现后的警醒,到深入学习大模型应用与算法,最终实现职业突破。强调普通…...
OpenClaw用户如何通过CLI子命令快速完成Taotoken接入配置
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 OpenClaw用户如何通过CLI子命令快速完成Taotoken接入配置 对于使用OpenClaw进行AI智能体开发的开发者而言,快速接入稳定…...
QQ音乐解析终极指南:如何免费获取全网音乐资源
QQ音乐解析终极指南:如何免费获取全网音乐资源 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic 你是否厌倦了音乐平台的层层限制?想要畅听所有歌曲却不想支付高昂的会员费?Q…...
Perplexity课程查询功能全链路拆解(从API底层到UI交互逻辑)
更多请点击: https://kaifayun.com 第一章:Perplexity课程查询功能全链路概览 Perplexity 的课程查询功能并非单一接口调用,而是一套覆盖用户意图理解、多源数据协同检索、结构化结果生成与实时反馈优化的端到端系统。其核心目标是将自然语言…...
别再只用箱线图了!用R语言ggplot2绘制高颜值小提琴图,让你的SCI图表更专业
科研数据可视化进阶:用R语言打造专业级小提琴图 在生物医学领域的科研论文中,数据可视化是展示研究成果的关键环节。许多研究者习惯性地使用箱线图来呈现数据分布,却忽略了这种传统方法可能掩盖的重要信息细节。当面对复杂的数据分布模式时&…...
实用指南:3分钟在Windows中解锁iPhone HEIC照片缩略图预览
实用指南:3分钟在Windows中解锁iPhone HEIC照片缩略图预览 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPh…...
