我有以下非常簡單的應用程序,編譯和運行良好:奇怪的錯誤當添加的#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