最近在研究雷神的开源项目VideoEye,但是下载编译时用VS2013和VS2015都出现一些报错。分析是因为雷神调试的环境是VS2010,现在使用新版本VS编译时存在不兼容的问题。网上查找各种信息,最终问题得以解决,于是乎记录一下。
【背景】
项目地址 http://git.oschina.net/leixiaohua1020/VideoEye
【解决方案】
一、VS2013和VS2015均需要修改
修改方案:
1、stdafx.h
在18行添加如下代码
#include <cmath>
#include <xtgmath.h>
using namespace std;
2、ve_play.cpp
在92行:rint(double x)改为rint_1(double x)
在1763行:在两个PRId64前面分别加空格
二、VS2015
1、无法解析的外部符号
LNK2019 无法解析的外部符号 _sscanf_s
修改方案:
项目-》属性-》链接器-》输入-》附加依赖项,添加:
legacy_stdio_definitions.lib
经过上述修改后,编译通过。
二、VS2013
出现类似下面的错误
LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)
uafxcw.lib(afxmem.obj)
修改方案:
项目-》属性-》链接器-》输入-》忽略特定默认库,添加:uafxcw.lib;LIBCMT.lib
项目-》属性-》链接器-》输入-》附加依赖项,添加:uafxcw.lib;LIBCMT.lib
之前在电脑上乱七八糟做了各种尝试,应该是按照上面设置就可以了。
不确定有没有忽略的,后面遇到再补充吧。
标签:uafxcw,lib,VS2015,VS2013,编译,源码,VideoEye From: https://blog.51cto.com/sannywoods/6455863