Eclipse 3.7 не может разрешать типы в редакторе C ++

Недавно я перешел с Eclipse 3.6 на Eclipse 3.7, который я использую для разработки на C ++ в Ubuntu 11.04.

С версией 3.6 у меня не было больших проблем, за исключением того, что у меня всегда были некоторые проблемы с индексатором. Теперь с версии 3.7 он начинает помечать неразрешенные типы как ошибки. Поскольку мне кажется, что индексатор мне не нравится больше, мой Eclipse, по-видимому, не знает таких типов, какuint16_t или жеsize_t.

В отличие от отображаемых ошибок в редакторе кода, мой компилятор не имеет проблем с компиляцией кода и разрешением всех символов и типов, так что, похоже, это проблема самой IDE.

Есть ли способы избежать такого поведения, потому что все красные подчеркивания делают мой код все более и более нечитаемым ...?

Update:

Хорошо, с некоторыми исследованиями и ответом Денниса, я обнаружил, что мне нужно добавить несколько путей к Project Properties/ C/C++ General/ Paths and Symbols

Поскольку я строю для PowerPC вместо цели I32, я не могу просто добавить/usr/include . Instead I needed to add

/usr/powerpc-linux-gnu/libc/usr/include

для всех стандартных заголовков (например,stdint.h). Also I needed:

/usr/lib/gcc/powerpc-linux-gnu/4.5.1/include

дляstdarg.h.

Теперь почти все ошибки исчезли. Единственная функция, которая все еще беспокоит меня, этоprintf из шапкиstdio.h, Я посмотрел его, и сам заголовочный файл лежит внутри включенных путей. Тем не менее я получаю сообщение об ошибке, которое говоритFunction printf could not be resolved, Хочу еще раз отметить, что это просто ошибки, отображаемые Eclipse - сама компиляция работает нормально.

Так что это на самом деле бросает 3 вопроса:

In the project properties the Paths and Symbols section coheres with the include Paths out of the C++ Build/Settings/C++ Includes section. This means adding/deleting a path in one of those sections directly affects the entry of the others. Since the C++ Includes directly coheres with the Compiler I wonder why the compiler can compile correcty ( and finds the headers ) even if they arent passed to him as a path? Is there some kind of standard path GCC uses, which I don't know about?

Why doesn't he find printf in eclipse? The headerfile stdio.h is included and it also contains the declaration of printf - so why does the Eclipse Code Editor tell me that it can't resolve it?

Why are the header files divided so much? I am aware that I need other header files if I am building for another traget (e.g. PowerPC) - But why does the GNU GCC separate those headers in different dirs?

Ответы на вопрос(3)

Ваш ответ на вопрос