BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #81131同步于 2014/7/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

linux下C++ 编译错误,求大神解答啊

OoooO
2014/7/29镜像同步1 回复
rt 代码在4.几版本上能正常编译,但在3.4.5的C++上编译出如下错误,实在是头疼 In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/string:57, from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/locale_classes.h:47, from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/ios_base.h:47, from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/ios:49, from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/ostream:45, from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/iostream:45, from function.h:3, from function.cpp:2: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc: In member function `std::basic_string<_CharT, _Traits, _Alloc>& std::basic: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:270: error: `less' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:270: error: expected primary-expression before "const" /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:270: error: expected `)' before "const" /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc: In member function `std::basic_string<_CharT, _Traits, _Alloc>& std::basic: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:297: error: `less' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:297: error: expected primary-expression before "const" /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:297: error: expected `)' before "const" /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc: In member function `std::basic_string<_CharT, _Traits, _Alloc>& std::basic: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:335: error: `less' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:335: error: expected primary-expression before "const" /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.tcc:335: error: expected `)' before "const" In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/map:67, from Type.h:3, from function.h:8, from function.cpp:2: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:89: error: `less' has not been declared /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:89: error: expected `>' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:89: error: expected unqualified-id before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:638: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:640: error: `bool std::operator==(int)' must have an argument of class or enumerate /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:640: error: `bool std::operator==(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator==(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:640: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:640: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:655: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:657: error: `bool std::operator<(int)' must have an argument of class or enumeratee /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:657: error: `bool std::operator<(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator<(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:657: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:657: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:662: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:664: error: `bool std::operator!=(int)' must have an argument of class or enumerate /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:664: error: `bool std::operator!=(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator!=(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:664: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:664: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:669: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:671: error: `bool std::operator>(int)' must have an argument of class or enumeratee /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:671: error: `bool std::operator>(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator>(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:671: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:671: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:676: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:678: error: `bool std::operator<=(int)' must have an argument of class or enumerate /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:678: error: `bool std::operator<=(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator<=(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:678: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:678: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:683: error: expected `,' or `...' before '<' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:685: error: `bool std::operator>=(int)' must have an argument of class or enumerate /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:685: error: `bool std::operator>=(int)' must take exactly two arguments /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: In function `bool std::operator>=(int)': /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:685: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:685: error: `__y' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h: At global scope: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: variable or field `swap' declared void /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: `std::swap' declared as an `inline' variable /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: template declaration of `int std::swap' /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: `map' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before '>' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: `__x' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: `map' was not declared in this scope /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before ',' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: expected primary-expression before '>' token /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:690: error: `__y' was not declared in this scope In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/map:68, from Type.h:3, from function.h:8, from function.cpp:2:
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
tonyjansan机器人#1 · 2014/7/29
less应该是这个吧:template <class T> struct less; 先查<functional>头看出了什么问题~