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开头的,尽量不升级,怕出一些问题

相关文章
|
4月前
|
机器学习/深度学习 Linux 计算机视觉
项目介绍
【7月更文挑战第30天】项目介绍。
41 1
|
11月前
|
Java Maven
给项目添加chechstyle
给项目添加chechstyle
84 2
|
IDE Java Linux
tbfetcher项目小结
tbfetcher项目小结
99 0
|
Ubuntu 编译器 开发工具
ShiftMediaProject项目介绍
ShiftMediaProject项目介绍
193 0
|
存储 JSON 监控
1、工程搭建与配置
MongoDB是介于关系型和非关系型数据库之间的产品,nosql中最热门的数据库,存储数据是类似于JSON的bson格式的数据,可以存储复杂的数据类型,最大特点是它支持的查询语句非常强大
128 0
|
存储 NoSQL 前端开发
项目总结
VUE的MVVM模式: Model:负责数据存储–script View:负责页面展示–template标签 View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示–script
181 0
|
SQL 前端开发 数据库
如何在码云上Down一个项目
如何在码云上Down一个项目
如何在码云上Down一个项目
|
微服务
项目配置
项目配置
105 0