升级项目到Vs2015版本的问题整理
来源:互联网 发布:java科学计算器源代码 编辑:程序博客网 时间:2024/05/14 17:33
提前说明,我升级的项目是从Vs2010升级到Vs2015的,这个过程中遇到许多问题这里整体作了一个整理。
以下整理内容仅供参考,如果不能正常解决,请参考其他内容,也谢谢大家的分享。
1、拿到手的项目你要确定在原来的环境下是可以正常编译通过的。
2、用VS2015打开你的解决方案或者是项目,在要升级的项目上单击鼠标右键,在弹出的菜单中选择“升级VC++编译器和库”菜单,效果如下图:
这时会弹出如下窗口:
如果你已经确定升级了,直接单击“确定”按钮即可。
3、上面的设置好后,你可以直接编译当前项目了,如果你原来项目中使用了一些老旧的函数,可能会出现如下问题:
出现这个问题,是因为微软从2012版本开始就默认为项目开启了SDL安全检查功能,一些老旧的项目可能是忽略这个选项的,这里给大家提供几个方式去解决这个问题:
3.1 在项目属性中选择 “ C/C++” -> “SDL检查” -> "否(/sdl)" ,最后“应用”“确定”
注:上面的设置在一些项目中可能可以解决上面的旧函数报错问题,有就遇到过了,第一天可以正常编译通过,第二天编译就不能正常编译通过。
3.2 根据提示我们可以添加相应的预编译宏“_CRT_SECURE_NO_WARNINGS",添加方式如下:
注:这个方式是参考网上的内容设置的,不过在我的项目中没有起到作用,这里也记录一下,万一别人通过了呢!
3.3 这个方式也是定义一个宏来解决这个问题,但是需要修改“stdafx.h”这个文件,可以在文件中添加如下宏:
#define _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
为了支持旧版本建议使用下面的方式,这里的_MSC_VER 是Vs的编译器版本1700是2012版本的:
注:这个方式在我的项目好用,但并不代表再你们的项目中可以能过。
4、关于使用Boost库时出现的问题,类似内容如下:
std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' VisDataDefine c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility 2372
这里给大家分享一个方式,解决方式如下图:
注:个人感觉出现这个问题的原因也是因为SDL检查的原因引起的,我在把SDL检查关闭时,上面这个选项不用添加也是可以直接编译通过的。所以感觉本质上还是需要SDL检查的原因引起的。
5、解决方案配置方式引起的编译不通过问题,一些项目在Vs2010中使用Debug和Unicode Debug都可以编译通过,但是切换到Vs2015中使用时,会发现使用Unicode方式进行编译时是编译通不过的,即使编译通过了,再引用库中也会出现一些未知错误,就比如前设置SDL检查问题,我就有遇到了Vs2010项目使用Unicode和非Unicode都可以编译通过,而迁移到Vs2015中,按照上面方式设置后,一些库使用Unicode进行编译时也可以通过,但时在被引用库中怎么设置都不起作用,还会出现一些字符串函数出现未被标识定义的问题出现。一次无意的切换了一下配置方式,使用非Unicdoe进行编译经通过了。所以写在了这里给大家进行分享一下。
6、注意函数
在VS2010中一些函数在Vs2015中已经进行了为优化调整,这样就导致我们的项目不能正常编译通过,这里罗列一些遇到的函数:
6.1 使用 greater<int>() 编译不通过,
经过神起的度娘之后,有人回复这问题是因为从2012之后的VS版本之后,greater的头文件位置发生了改变,这时我们可以按下面的方式去加一下头文件,代码语句如下:
6.2标准库中std::make_pair,可以使用std::pair(t1, t2)来进行替换
0 0
- 升级项目到Vs2015版本的问题整理
- 升级项目到Vs2015版本的问题整理
- VS2010项目升级到VS2015时出现的问题
- TensorFlow升级到1.0版本的问题
- TensorFlow升级到1.0版本的问题
- TensorFlow升级到1.0版本的问题
- 有关程序版本升级的问题--升级到“妻子1.0”
- Android Studio 升级到2.3版本后Run项目不能自动启动APP的问题
- Android Studio 升级到2.3版本后Run项目不能自动启动APP的问题
- VS2013升级到VS2015
- AndroidStudio低版本(1.5)升级到高版本(2.1)之后你可能会遇到的其中一个项目构建问题
- VS2013的工程升级到VS2015工程的相关问题记录
- 升级到Android Studio2.2 后打不开以前版本的项目
- Tomcat升级到5.5,数据源无法使用的问题整理
- Tomcat升级到5.5,数据源无法使用的问题整理
- tomcat6 升级到 tomcat7时遇到的问题 (整理)
- resin3.0升级到3.1版本遇到的问题
- Android ADT升级到17.0版本后的一些问题
- CardView使用遇到的问题
- redis.conf 常见配置介绍
- PeopleSoft 入门学习(二)
- 网球循环赛
- 记一次小程序开发过程
- 升级项目到Vs2015版本的问题整理
- Android--获取系统时间的几种方式
- MUI webAPP中投放广告方法
- web.xml配置
- mybatis 中如何映射实体类和表名首先:最好把实体类里面的变量名称和表里面字段写成一致。 然后:在SqlMapConfig.xml中 <typeAliases> <typeAlias alias
- MySQL中汉字占多少字节?varchar(x)中的x如何理解?
- DLL导出类
- 使用springMVC的详细步骤
- 批量r.c2 r.l2