VS 2015 编译一些库的时候,出现 error “fatal error C1189: #error: Macro definition of snprintf conflicts with St
2016-11-01 16:37
736 查看
VS 2015 编译一些库的时候,出现 error “fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration”
问题
VS 2015 编译一些库的时候,出现 error “fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration”:解决方案
原因是,很多的库或者程序中将snprintf()函数定义为 _snprintf(),而在vs2015出现之前并不支持_snprintf()。然而,vs2015定义了 snprintf()。在头文件 Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(1927)中:
这显然就导致了snprintf()的重定义。
解决的办法是,在你所有定义snpritf的文件中(可能你使用的是别人提供的库中出现冲突,那么这时候你就需要修改重新编译该库),找到如下定义:
#define snprintf _snprintf
将其替换为
#if defined(_MSC_VER) && _MSC_VER<1900 # define snprintf _snprintf #endif
参考
http://stackoverflow.com/questions/27754492/vs-2015-compiling-cocos2d-x-3-3-error-fatal-error-c1189-error-macro-definitihttp://trac.wxwidgets.org/ticket/16854#no1
相关文章推荐
- vs 2015 编译cocos2dx 报错C1189 #error: Macro definition of snprintf conflicts with Standard Library func
- vs 2015 编译cocos2dx 报错C1189 #error: Macro definition of snprintf conflicts with Standard Library func
- vs 2015 编译cocos2dx 报错C1189 #error: Macro definition of snprintf conflicts with Standard Library func
- error “fatal error C1189: #error: Macro definition of snprintf conflicts with ...的新的解决办法
- keil5 编译程序出现错误Error: L6411E: No compatible library exists with a definition of startup symbol __main
- Macro definition of snprintf conflicts with Standard Library function declaration
- keil5 编译程序出现错误Error: L6411E: No compatible library exists with a definition of startup symbol __main
- 关于使用VS2015编译项目时出现LNK1112 module machine type 'x64' conflicts with target machine type 'X86'
- vs2015 git push代码的时候出现The requested URL returned error: 403
- xcode编译时候出现clang: error: linker command failed with exit code 1 (use -v to see invocation)的解决方法
- 在VC++ 中编译的时候出现“cannot find the definition (implementation) of thisfunction”。
- 编译kernel出现Error during update of the kernel configuration解决办法
- ADS1.2 编译的时候提示 Error L6000U: out of memory
- 今天安装mysql时候出现错误MySQL conflicts with mysql-4.1.20-2.RHEL4.1.i386
- 出现警告"defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library ."
- 如何解决linux下编译出现的multiple definition of错误
- 编译apk时出现“Error conversion to Dalvik format failed with error 1”的解决方法
- 解决android混淆编译出现Proguard returned with error code 1和文件名、目录名或卷标语法不正确错误
- 今天安装mysql时候出现错误MySQL conflicts with mysql-4.1.20-2.RHEL4.1.i386
- vc6.0编译提示LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs;