Здравствуйте!
Весь день бъюсь над компиляцией программы. Перед этим два дня делал ей кардинальную переделку (без промежуточных компиляций). В результате, сейчас не могу скомпилить.
Проблема в том, что компилятор gcc, в случае забывчивости программиста поставить ; или " или }, обычно не показывает то место, где эта ошибка произошла, и догадываться приходится по коственным признакам.
Вот сейчас у меня такая же ситуация. Я столько кода наменял, что вспомнить, где надо перепроверить, нет возможности. А скомпилить не могу, из-за неизвестного места, в котором есть проблема.
Что делать? Слышал, вроде есть какие-то дополнительные анализаторы кода, но те что я нашел - это для аудита безопасности кода.
Вот вывод ошибок
src/treeitem.h:75: ошибка: ISO C++ запрещает декларации 'recordtabledata' без типа
src/treeitem.h:75: ошибка: expected ';' before '*' token
src/treeitem.h:89: ошибка: 'recordtabledata' does not name a type
src/recordtablemodel.h:38: ошибка: 'recordtabledata' не был декларирован
src/recordtablemodel.h:43: ошибка: ISO C++ запрещает декларации 'recordtabledata' без типа
src/recordtablemodel.h:43: ошибка: expected ';' before '*' token
src/recordtablescreen.h:35: ошибка: 'recordtabledata' не был декларирован
src/recordtablescreen.h:125: ошибка: ISO C++ запрещает декларации 'recordtabledata' без типа
src/recordtablescreen.h:125: ошибка: expected ';' before '*' token
src/recordtablescreen.cpp:173: ошибка: prototype for 'void recordtablescreen::set_tabledata(recordtabledata*)' does not match any in class 'recordtablescreen'
src/recordtablescreen.h:35: ошибка: претендент: void recordtablescreen::set_tabledata(int*)
src/recordtablescreen.cpp:173: предупреждение: unused parameter 'rtdata'
src/recordtablescreen.cpp: In member function 'void recordtablescreen::select(const QModelIndex&)':
src/recordtablescreen.cpp:217: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::add_new(int, QString, QString, QString, QString, QString)':
src/recordtablescreen.cpp:312: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::edit_field_context()':
src/recordtablescreen.cpp:341: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::edit_field(int, QString, QString, QString, QString)':
src/recordtablescreen.cpp:373: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::delete_records()':
src/recordtablescreen.cpp:426: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::copy()':
src/recordtablescreen.cpp:459: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::moveup()':
src/recordtablescreen.cpp:642: ошибка: нет декларации 'table' в этой области видимости
src/recordtablescreen.cpp: In member function 'void recordtablescreen::movedn()':
src/recordtablescreen.cpp:662: ошибка: нет декларации 'table' в этой области видимости
По какой-то причине невозможна работа с классом recordtabledata. Обычно такие ошибки возникают, если забыть подключить заголовок recordtabledata.h через include, или в прототипе класса забыть за закрывающей скобкой поставить ; . Везде где нужно (и ненужно) заголовок подключен. В pro файле (использую Qt)в HEADERS и SOURCES добавлены recordtabledata.h и recordtabledata.cpp соответсвенно.
Обращаю внимание на странную ошибку
"... prototype for 'void recordtablescreen::set_tabledata(recordtabledata*)' does not match any in class 'recordtablescreen'
src/recordtablescreen.h:35: ошибка: претендент: void recordtablescreen::set_tabledata(int*) ..."
Претендента set_tabledata(int*) у меня нигде на самом деле в коде нет, а есть
Прототип в классе recordtablescreen (файл recordtablescreen.h)
void set_tabledata(recordtabledata *);
Реализация (файл recordtablescreen.cpp)
void recordtablescreen::set_tabledata(recordtabledata *rtdata)
{
...
}
Поток ошибок с table связано с тем, что член класса table имеет тип recordtabledata.
В общем, все указывает на проблему в классе recordtabledata. Я его излазил вдоль и поперек, ошибки не вижу. Но почему-то с ним происходят вот такие странные вещи. И почему-то в нем компилятор ошибок не обнаруживает.
Вопрос. Что делать, как найти ошибку?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от smh
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от smh
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от dont
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от Dendy
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Dendy
Ответ на:
комментарий
от xydo
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от Absurd
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от Dendy
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от xintrea
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Qt] Как написать для QMap значение по-умолчанию в прототипе функции? (2010)
- Форум Mingw не компилит собственные хедеры. (2013)
- Форум Qt не хочет собирать драйвер для PSQL (2010)
- Форум Debug_new, dmalloc не получается собрать. (2012)
- Форум не компилирует hello world (2012)
- Форум Чнго не хватает? (2004)
- Форум gcc 4.4.2: не знает про uint64_t (2010)
- Форум dolphin-emu - если кому-нибудь нечем заняться (2013)
- Форум Не могу создать производный класс от QComboBox (2014)
- Форум Не собирается reVC на Arch Linux (2024)