2010-03-16 82 views
1

我有紅帽用gcc 4.1.1我已編譯爲 「GCC test.c的」 和提供以下錯誤GCC問題:在模板

錯誤:預期 '=', '',「; 「 ,ASM」或 '__ attribute__' 前 '<' 令牌

代碼在 「test.c的」 是遵循

template <typename T> class A { 
public: 
    T foo; 
}; 

回答

2

這是C++代碼,而不是C.您需要使用g++,即g++ test.c。此外,爲避免混淆,您應該重命名文件以.cpp.cxx結尾。

6

編譯g++和/或你的文件重命名爲test.cpp

如果使用gcc test.c進行編譯,那麼您的文件將被視爲C文件。 C中沒有模板。

2

GCC Manual開始,編譯一個帶有.c擴展名的文件將編譯您的代碼,就像它是C而不是C++一樣。最簡單的解決方案是用g++代替編譯代碼。 g++命令將默認語言設置爲C++,並自動將您的代碼與C++標準庫鏈接。你可以用gcc做這兩個,但你必須手工完成。你究竟是怎麼做的,這只是一個練習。 :-)