使用VS2015编译cocos2d-x-3.6工程报错的解决

本文详细介绍了在使用VS2015编译cocos2d-x-3.6工程时遇到的四个主要错误:snprintf宏重定义、无法解析的外部符号__imp___vsnprintf、libpng.lib链接错误和error C2039。针对每个错误,文章给出了原因分析和解决方法,包括修改cocos2d源代码、添加链接器附加依赖项以及调整代码以适配VS2015的编译环境。
摘要由CSDN通过智能技术生成

使用VS2015编译cocos2d-x-3.6引擎的cpp-tests工程,首先报错的是libcocos2d模块,错误如下:

1、错误:snprintf宏重定义:#error: Macro definition of snprintf conflicts

原因

在VS2015前,Windows系统头文件并没有定义snprintf宏,所以cocos2d在CCStdC-win32.h文件做了如下定义

#define snprintf _snprintf

而VS2015开始在系统头文件中又定义了snprintf宏,所以就出现了重定义冲突。

解决

在cocos2d的CCStdC-win32.h文件中注释以下这行,如下:

//#define snprintf _snprintf

继续编译,报错:

2、错误:无法解析的外部符号 __imp___vsnprintf

原因

vs2015默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。

解决

在vs2015工程选项,链接器附加依赖项里面添加 legacy_stdio_definitions.lib 即可,如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值