g++ 错误“sstream.tcc:112:39:错误:预期在‘(’标记之前为不合格 ID”

g++ 错误“sstream.tcc:112:39:错误:预期在‘(’标记之前为不合格 ID”

我尝试在 Ubuntu 上安装一个程序,它使用 main.cpp。我不知道为什么,但它总是出错。(main.cpp 语法 100% 正确)并且这个程序在 Mac 系统上运行没有错误,但在 ubuntu 上不行。我不知道如何修复它。请问您能帮助解决这个问题吗?

g++ 版本:g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

以下错误:

g++ -O2 -g -Wall -fmessage-length=0 -I/usr/include/mysql    -c -o main.o main.cpp
In file included from /usr/include/c++/4.6/sstream:580:0,
                 from /usr/local/include/glog/logging.h:44,
                 from main.cpp:13:
/usr/include/c++/4.6/bits/sstream.tcc: In member function ‘virtual std::basic_stringbuf<_CharT, _Traits, _Alloc>::int_type std::basic_stringbuf<_CharT, _Traits, _Alloc>::overflow(std::basic_stringbuf<_CharT, _Traits, _Alloc>::int_type)’:
/usr/include/c++/4.6/bits/sstream.tcc:112:39: error: expected unqualified-id before ‘(’ token
/usr/include/c++/4.6/bits/sstream.tcc:114:35: error: expected unqualified-id before ‘(’ token
make: *** [main.o] Error 1

答案1

在 Google 上搜索该错误消息建议这是由于宏max干扰了代码造成的sstream.h. 尝试在包含以下内容的位置上方添加以下几行main.cpp

#undef max
#undef min

相关内容