我有紅帽用gcc 4.1.1我已編譯爲 「GCC test.c的」 和提供以下錯誤GCC問題:在模板
錯誤:預期 '=', '',「; 「 ,ASM」或 '__ attribute__' 前 '<' 令牌
代碼在 「test.c的」 是遵循
template <typename T> class A {
public:
T foo;
};
我有紅帽用gcc 4.1.1我已編譯爲 「GCC test.c的」 和提供以下錯誤GCC問題:在模板
錯誤:預期 '=', '',「; 「 ,ASM」或 '__ attribute__' 前 '<' 令牌
代碼在 「test.c的」 是遵循
template <typename T> class A {
public:
T foo;
};
這是C++代碼,而不是C.您需要使用g++
,即g++ test.c
。此外,爲避免混淆,您應該重命名文件以.cpp
或.cxx
結尾。
編譯g++
和/或你的文件重命名爲test.cpp
。
如果使用gcc test.c
進行編譯,那麼您的文件將被視爲C文件。 C中沒有模板。
從GCC Manual開始,編譯一個帶有.c
擴展名的文件將編譯您的代碼,就像它是C而不是C++一樣。最簡單的解決方案是用g++
代替編譯代碼。 g++
命令將默認語言設置爲C++,並自動將您的代碼與C++標準庫鏈接。你可以用gcc
做這兩個,但你必須手工完成。你究竟是怎麼做的,這只是一個練習。 :-)