error C2589
错误提示
1
2
3
4
5
6
7
8
9
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(23): error C2589: “(”:“::”右边的非法标记
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(23): error C2059: 语法错误:“::”
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd(491): error C2589: “(”:“::”右边的非法标记
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd(491): error C2059: 语法错误:“::”
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo(51): error C2589: “(”:“::”右边的非法标记
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo(51): error C2059: 语法错误:“::”
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(390): error C2059: 语法错误:“(”
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale(682): error C2589: “(”:“::”右边的非法标记
1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale(682): error C2059: 语法错误:“::”
解决策略
看具体是哪里出的错,我这里的错误是因为strlen的typedef重复写了,在VC的相关头文件里面有,并且在libnopoll的相关头文件中也有,因此出了问题;
针对于个人情况,使用以下代码可以修复:
1
2
3
4
5
#include "nopoll.h"
#ifdef strlen
#undef strlen
#endif // strlen
//在正式用的时候,取消定义一下即可;