所以我正在尝试编译由其他人编写的一组C文件,并且我不断收到以下错误:
TBin.h:10:错误:预期'=',',', ';','asm'或'属性'之前 'TBIN'
这发生在.h文件中,该文件在类定义之前当前具有#ifndef
和#define
。这条线本身就是:
class TBin {
在文件之前没有其他任何内容,没有包含,没有注释,没有任何随机位。即使我删除了警卫并将声明直接移到文件顶部,我也会得到同样的错误。我认为这只有在前面的代码中存在问题时才会发生,但我没有前面的代码!想法?
答案 0 :(得分:3)
你不能在C中使用“class”。试试C ++编译器。 ; - )
仅作比较,这是clang的输出:
% ~/ellcc/bin/ecc ~/test.c
/home/rich/test.c:1:1: error: unknown type name 'class'
class TBin {
^
/home/rich/test.c:1:11: error: expected ';' after top level declarator
class TBin {
^
;
2 errors generated.
更具描述性,可能,但不是太多。
答案 1 :(得分:0)
看起来您的头文件中缺少TBin的定义。尝试找出在yor源代码树中定义TBin数据类型(或typdef或其他内容)的位置,并尝试将该头文件包含在您的问题头文件中。 提供整行引起的错误将非常有帮助。
答案 2 :(得分:0)
您正在尝试使用C编译器编译C ++代码。您是否有机会使用gcc
?如果编译C ++代码,则需要g++
。