我有以下非常简单的应用程序,编译和运行良好:奇怪的错误当添加的#include <string>
编辑:改变的例子是simpilar结束,真正的问题
int main() {
return 0;
}
由于混乱当我加入#include <string>
(甚至不能引用的std :: string),它不能编译,我得到以下错误:
/usr/include/c++/4.1.2/bits/allocator.h:82 error: expected template-name before '<' token
随着约456其他类似的错误。
任何想法?谢谢!
UPDATE:
线/usr/include/c++/4.1.2/bits/allocator.h
82引用在错误的位置模板__glibcxx_base_allocator
。该模板在bits/c++allocator.h
中定义。当我搜索那个文件的系统时,我得到3个命中,但没有一个在/usr/include/c++/4.1.2/bits/
,正如人们所期望的那样。
我有版本3.1.6,4.1.1和4.3.2,但没有4.1.2,因为我正在使用的包括其余部分。我不确定哪一个被使用(如果有的话,但是,我没有得到任何未知文件的错误),但似乎问题可能源于此。
另外:我只是用'G ++ hello.cc -o hello'编译,没有什么花哨 – steveo225 2011-03-08 20:11:40
你能张贴失败整个文件? – yan 2011-03-08 20:13:27
'g ++ --version'的输出是什么? – Johnsyweb 2011-03-08 20:13:53