LINUX.ORG.RU

eclipse показывает не существующие ошибки в коде


1

2

Импортировал проект с существующими исходниками и Makefile через мастер в Eclipse. Проект собирается и запускается нормально, но сам редактор показывает ошибки... Некоторые из них я смог устранить подключением заголовочных файлов в настройках проекта, но вот в этом коде:

    const struct option long_options[] = {
        { "configfile", required_argument, 0, 'C' },
        { "data",       required_argument, 0, 'd' },
        { "default",    no_argument,       0, 'D' },
        { "playername", required_argument, 0, 'p' },
        { "password",   required_argument, 0, 'P' },
        { "help",       no_argument,       0, 'h' },
        { "updatehost", required_argument, 0, 'H' },
        { "skipupdate", no_argument,       0, 'u' },
        { "username",   required_argument, 0, 'U' },
        { "no-opengl",  no_argument,       0, 'O' },
        { "version",    no_argument,       0, 'v' },
        { 0 }
    };

Появляется ошибка: Symbol 'required_argument' could not be resolved. Которую я незнаю как исправить.

P.S: getopt.h подключен

Появляется ошибка: Symbol 'required_argument' could not be resolved

Error или warning? Компилятор ругается или сама IDE?

Bad_ptr ★★★★★
()
Ответ на: комментарий от note173

Так и знал что это мне предложат... Отключение ошибки не решит проблему, и не научит меня ничему, к тому-же раз редактор будет считать данные конструкции ошибкой я потеряю возможность автокомплита в них.

greshink
() автор топика
Ответ на: комментарий от greshink

Отображение семантических ошибок в С практически бесполезно. Кроме того, эклипс не проверяет установленные в проекте флаги препроцессора для компиляции (-D...), из-за чего неправильно распознает целые блоки.

Если щелкнуть по символу с зажатым ctrl, он не находится?

note173 ★★★★★
()
Ответ на: комментарий от note173

Можно еще попробовать вынести за функцию этот массив.

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

note173 ★★★★★
()
Ответ на: комментарий от greshink

Для проекта на makefile'ах есть стандартный трюк: сделать (из Eclipse) Clean project, запустить сборку, после этого перестроить индекс.

Если не поможет, сделай «Search unresolved includes» и посмотри на результат. И да, сообщи версию CDT.

tailgunner ★★★★★
()
Ответ на: комментарий от note173

Отображение семантических ошибок в С практически бесполезно.

Оно полезно.

tailgunner ★★★★★
()
Ответ на: комментарий от greshink

Ну открой тот файл, где этот символ определён — пущаё оно его проиндексирует.
Кстати раньше, незнаю как щас, при обновлении на новую версию, там чё-то глючило, решалось так:
rm ~/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/*.sc

Bad_ptr ★★★★★
()
Ответ на: комментарий от tailgunner
 Aethyra src bindings physfs physfsrwops.c Unresolved inclusion: stdio.h physfsrwops.h (2 matches) Unresolved inclusion: physfs.h Unresolved inclusion: SDL/SDL.h core image particle animationparticle.h Unresolved inclusion: libxml/tree.h rotationalparticle.h Unresolved inclusion: libxml/tree.h animation.h Unresolved inclusion: libxml/tree.h map utils configuration.h log.cpp eathena engine.cpp tools tmxcopy adler32.c (3 matches) Unresolved inclusion: stdio.h Unresolved inclusion: stdlib.h Unresolved inclusion: zlib.h /usr/include /usr/include/c++/4.6 /usr/include/SDL /usr/include/X11 /usr/include/x86_64-linux-gnu/bits /usr/include/x86_64-linux-gnu/sys 

CDT Version: 8.0.0.201109151620 Думаю поиду на netbeans проверю как оно там работает....

greshink
() автор топика

Похоже вообще это проблема самого эклипса, а не импортированного проекта. Так как если приведенный выше файл вставить в хелловорд проект я вижу теже ошибки. Плохо что разработчики CDT релизят некачественные вещи =(...

greshink
() автор топика
Ответ на: комментарий от tailgunner

какой троллинг? в netbeans тыкнул 2 кнопки проект готов! С эклипсом разбирался вечер, и имею кучу непонятных ошибок...

greshink
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.