我有ghat 4.1.1的redhat我编译为“gcc test.c”并给出以下错误
错误:预期'=',',',';' ,'ltsm'或'__ attribute__'在'<'之前令牌
“test.c”中的代码如下
template <typename T> class A {
public:
T foo;
};
答案 0 :(得分:6)
使用g++
进行编译和/或将您的文件重命名为test.cpp
。
如果使用gcc test.c
进行编译,那么您的文件将被假定为C文件。 C中没有模板。
答案 1 :(得分:2)
这是C ++代码,而不是C.您需要使用g++
,即g++ test.c
。另外,为避免混淆,您应将文件重命名为.cpp
或.cxx
。
答案 2 :(得分:2)
从GCC Manual编译一个带有.c
扩展名的文件将编译你的代码,好像它是C,而不是C ++。最简单的解决方案是使用g++
编译代码。 g++
命令将默认语言设置为C ++,并自动将代码链接到C ++标准库。您可以使用gcc
执行这两项操作,但必须手动完成。你究竟是怎么做的就是练习。 : - )