Ошибки на пустом месте? - PullRequest
0 голосов
/ 20 июня 2011

Поэтому я пытаюсь скомпилировать набор файлов C, написанных кем-то другим, и постоянно получаю следующую ошибку:

TBin.h: 10: ошибка: ожидается '=',',', ';', 'asm' или ' атрибут ' до 'TBin'

Это происходит в файле .h, который в настоящее время имеет #ifndefи #define до определения класса.Сама строка:

class TBin {

Ничего другого в этом файле нет, нет включений, комментариев, никаких случайных битов.Даже если я снимаю охрану и перемещаю декларацию прямо в начало файла, я получаю ту же ошибку.Я думал, что это может произойти, только если была проблема в предыдущем коде, но у меня нет предыдущего кода!Идеи?

Ответы [ 3 ]

3 голосов
/ 20 июня 2011

Вы не можете использовать "класс" в C. Попробуйте компилятор 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.

Может быть, немного более информативным, но не слишком.

0 голосов
/ 20 июня 2011

Вы пытаетесь скомпилировать код C ++ с помощью компилятора C.Вы случайно не используете gcc?Если вы компилируете код C ++, вам нужно g++.

0 голосов
/ 20 июня 2011

Похоже, что определение TBin отсутствует в вашем заголовочном файле. Попытайтесь выяснить, где тип дерева TBin (или typdef или что-то еще) определен в вашем исходном дереве, и попробуйте включить этот заголовочный файл в заголовочный файл вашей проблемы. Было бы очень полезно указать всю строку, вызвавшую ошибку.

...