使用g++编一个cpp工程时,有这样的错误:
opt/FriendlyARM/toolschain/4.5.1/bin/…/lib/gcc/arm-none-linux-gnueabi/4.5.1/…/…/…/…/arm-none-linux-gnueabi/include/c++/4.5.1/bits/cpp_type_traits.h:209:12: error: redefinition of ‘struct std::__is_integer’
opt/FriendlyARM/toolschain/4.5.1/bin/…/lib/gcc/arm-none-linux-gnueabi/4.5.1/…/…/…/…/arm-none-linux-gnueabi/include/c++/4.5.1/bits/cpp_type_traits.h:143:5: error: previous definition of ‘struct std::__is_integer’
查看cpp_type_traits.h, 143行与209行分别如下:
141 template<>
142 struct __is_integer
143 {
144 enum { __value = 1 };
145 typedef __true_type __type;
146 };
208 template<>
209 struct __is_integer
210 {
211 enum { __value = 1 };
212 typedef __true_type __type;
213 };
上面两个函数不分别是int和bool, 不一样啊!
再细查,工程前面有处地方定义bool为int了,晕倒啊!