VS配置新项目

简介: VS配置新项目

引言

这两天需要从远端下载一个新的项目,而新项目所依赖的第三方库我电脑本地已经有了,所以就开始一个个修改每个项目的包含目录和库目录,修改了一天都没改完,于是发现问题不对劲

基本知识

众所周知,C++本身的功能十分简陋,经常需要用到其他的各种第三方库,包含目录和库目录可以很方便的管理第三方库

包含目录是头文件存储的地方,一般是在include中

库目录则是链接库在的地方,一般在lib中

那什么要有包含目录和库目录呢?

你可以把一个第三方库看作是一个功能,像我们写C++时,一般是写个函数实现功能,而函数我们都知道需要有声明和定义,例如一个加法功能的函数

int add(int a, int b)
{
    return a + b;
}

我们只知道这个功能是这样,但是我们怎么用他呢,所以需要函数的声明,告诉我们应该调用哪个函数,里面的参数传什么类型,才能正确使用它

int add(int a, int b);

既然第三方库也是个功能,所以就需要用头文件来告诉我们怎么用这个功能,也就需要包含目录(知道有哪些功能,怎么正确调用它),所以包含目录里面其实就是一堆头文件,指明了我们都有哪些函数功能

但只知道有哪些功能也不行,因为没有实现这个函数,相当于空中楼阁

而第三方库的函数功能实现,就是在lib里面,它是写好的函数具体实现功能,封装起来,供人们调用,其中库文件分动态链接库和静态链接库

当在VS中把包含目录和库目录配置好后,我们才可以正常使用第三方库的功能

通俗一点说,包含目录就是我们的想法, 我们想得高分,想考研成功,想升职加薪,但只有想法,没有行动(库目录),就是一场空

我的做法

比如我的本地有jsoncpp这个库,在D:\3rd的路径下,并且编译项目时发现json这边报错,缺少的头文件刚好也是我jsoncpp里面的,于是我便把我jsoncpp的include和lib配置进包含目录和库目录中,其实当项目少的话还好,一个解决方案里面有很多项目,并且也不止一个库的时候,VS编译每次也都不一定把错误全报出来完,这样是很费劲的,很傻傻的对上百个错误一个个比对,全部改完还是报错,说的就是我

正确做法

1.明确配置管理器

  • 是选Debug还是Release,有些还会有自己弄得配置环境,比如我们的Release_D就是把C++里面的优化功能禁用
  • 是选x64还是win32

这两个你没选对项目的正确配置,是编不过的

2.明确项目第三方库的版本

有时编译不过,用everything搜头文件,发现自己电脑里有,所以就直接配上了,这其实是有隐患的

比如第三方库也是会升级的,也许你下载的这个项目所依赖的第三方库版本比你电脑有的要高,刚好高版本新增了或者删除了一些头文件,亦或是其他的删改,你用你电脑自己的配置,将来还是会编译不过的

如果你是从github上下载的项目,注意看说明各个依赖第三方库的版本

如果你是从公司仓库里下载的,则让同事给你发他们在此项目上运行正常的第三方库

3.将项目自带的环境变量加入到本机中

比如项目中头文件json.h包含目录是$(TX3rdParty)\Jsoncpp\include,而你的json.h头文件在E:/3rd/Jsoncpp/include,刚好你也配过环境变量也就是Own3rd代替了E:/3rd,所以你在项目中把$(TX3rdParty)\Jsoncpp\include给删掉,转而用自己的$(Own3rd)\Jsoncpp\include,这样的话,那所有的项目你都要一个个替换成你自己的,非常繁琐

最好的方法是,再去配一个环境变量,把TX3rdParty配成E:/3rd就好了,不用你修改项目的任何包含目录和库目录

另外如果在你第一次打开Sln时候,会让你升级一堆v140类似这样v开头的,尽量不升级,怕出一些问题

相关文章
|
存储 网络协议 关系型数据库
计算机之服务器的分类?
计算机之服务器的分类?
|
存储 安全 网络安全
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的旅游景区管理系统
该项目是为大学生课程设计开发的旅游景区管理系统,采用Python+Vue技术栈,实现前后端分离。主要功能涵盖景区、类型、用户管理等,并支持统计分析、消息发布、订单处理及个性化推荐。开发环境基于Python 3.8 + Django 3.2、Vue + JavaScript及MySQL 5.7。通过该项目,学生可深入学习相关技术,增强实践能力,为职业发展奠定基础。[在线演示](https://travel2.gitapp.cn) | [源码](https://github.com/net936/python_travel2) | 管理员默认账号: admin123 / admin123.
370 3
|
SQL 数据库 数据库管理
如何使用Navicat导出数据?
【8月更文挑战第28天】如何使用Navicat导出数据?
3473 6
|
前端开发 JavaScript 开发者
React的函数组件与类组件:探索两者之间的区别
【4月更文挑战第25天】React提供函数组件和类组件,两者在语法、状态管理、生命周期和性能优化上有所不同。函数组件简单且易于理解,使用 Hooks 可添加状态管理;类组件支持复杂状态管理和生命周期方法,适用于需要精细控制更新的场景。随着 Hooks 的发展,函数组件功能增强,成为更多开发者的首选。选择组件类型应根据实际需求权衡。
[学习][笔记] qt5 从入门到入坟:《零》vs开发qt项目
[学习][笔记] qt5 从入门到入坟:《零》vs开发qt项目
153 0
|
SQL 消息中间件 存储
|
Unix Linux Shell
Linux中ps 命令使用详解
Linux中ps 命令使用详解
317 0
|
存储 人工智能 Cloud Native
Diskless:云与互联网数据中心的下一个大变革
Diskless:云与互联网数据中心的下一个大变革
592 0