VS2015 编译net-snmp库出现warning C4005: “snprintf”: 宏重定义,fatal error C1189

VS2015 编译net-snmp库出现

1>  winpipe.c
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(1925): warning C4005: “snprintf”: 宏重定义
1>  G:\DevelopLib\net-snmp-5.7.3\win32\net-snmp/net-snmp-config.h(1660): note: 参见“snprintf”的前一个定义

1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdio.h(1927): fatal error C1189: #error:  Macro definition of snprintf conflicts with Standard Library function declaration


参考https://stackoverflow.com/questions/27754492/vs-2015-compiling-cocos2d-x-3-3-error-fatal-error-c1189-error-macro-definiti

因为VS2015已经定义了snprintf(),代码中不应该再重复定义,找到snprintf()的定义,修改为

#if _MSC_VER>=1900
#  define STDC99
#endif

net-snmp中,是在下图的位置


修改结果:


VS版本说明:

MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
MSVC++ 9.0  _MSC_VER == 1500 (Visual Studio 2008)
MSVC++ 8.0  _MSC_VER == 1400 (Visual Studio 2005)
MSVC++ 7.1  _MSC_VER == 1310 (Visual Studio .NET 2003)
MSVC++ 7.0  _MSC_VER == 1300
MSVC++ 6.0  _MSC_VER == 1200
MSVC++ 5.0  _MSC_VER == 1100
MSVC++ 4.0  _MSC_VER == 1000
MSVC++ 2.0  _MSC_VER ==  900
MSVC++ 1.0  _MSC_VER ==  800
C/C++  7.0  _MSC_VER ==  700
C      6.0  _MSC_VER ==  600

猜你喜欢

转载自blog.csdn.net/qq1012848571/article/details/80310941
今日推荐