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?