【发布时间】:2012-07-09 21:58:36
【问题描述】:
我最近从 Eclipse 3.6 更改为 Eclipse 3.7 ,我在 Ubuntu 11.04 中用于 C++ 开发。
在 3.6 版中,我没有遇到什么大问题,只是索引器总是有一些问题。
现在在 3.7 版中,它开始将未解决的类型标记为错误。由于索引器似乎更不喜欢我,我的 Eclipse 显然不知道像 uint16_t 或 size_t 这样的类型。
与代码编辑器中显示的错误相反,我的编译器在编译代码和解析所有符号和类型方面没有问题,所以这似乎是 IDE 本身的问题。
有什么办法可以避免这种行为,因为所有的红色下划线让我的代码越来越不可读......?
更新:
好的,通过一些研究和丹尼斯的回答我发现我需要添加一些路径
Project Properties/ C/C++ General/ Paths and Symbols
由于我正在为 PowerPC 而不是 I32 目标构建,我不能只添加 /usr/include 。
相反,我需要添加
/usr/powerpc-linux-gnu/libc/usr/include
适用于所有标准标题(如stdint.h)。
我还需要:
/usr/lib/gcc/powerpc-linux-gnu/4.5.1/include
为stdarg.h。
现在几乎所有的错误都消失了。唯一仍然困扰我的功能是标题stdio.h 中的printf。我查了一下,头文件本身位于包含的路径中。我仍然收到一个错误,上面写着Function printf could not be resolved。我想再次指出,这些只是 Eclipse 显示的错误 - 编译本身工作正常。
所以这实际上引发了 3 个问题:
在项目属性中,
Paths and Symbols部分与C++ Build/Settings/C++ Includes部分中的包含路径相一致。这意味着在其中一个部分中添加/删除路径会直接影响其他部分的条目。由于C++ Includes直接与编译器相一致,我想知道为什么编译器可以正确编译(并找到标头),即使它们没有作为路径传递给他?是否有某种我不知道的 GCC 使用的标准路径?为什么他在eclipse中找不到
printf?包含头文件stdio.h,它还包含printf的声明——那么为什么Eclipse 代码编辑器告诉我它无法解决它?为什么头文件分得这么多?我知道如果我正在为另一个 traget(例如 PowerPC)构建我需要其他头文件 - 但是为什么 GNU GCC 将这些头文件分隔在不同的目录中?
【问题讨论】: