使用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 即可,如下图所示: