我刚刚使用Eclipse
安装了CDT
MinGW
。
所有的环境变量都是设置的,包括等等。尝试运行一个hello world,一切似乎都很好。
我尝试在计算机中加载我之前拥有的C
项目,它似乎可以加载所有内容,但我使用NULL
符号出现以下错误:
Symbol 'NULL' could not be resolved
任何见解?谢谢!
答案 0 :(得分:37)
NULL通常在stddef.h中定义。此文件通常也包含在stdlib.h和stdio.h中。
而且,你总是可以这样做:
#ifndef NULL
#define NULL ((void *) 0)
#endif
答案 1 :(得分:17)
正如鲍勃所说,我只是通过重建索引来修复错误
答案 2 :(得分:5)
我遇到了同样的问题:我的makefile运行正常,但是我从Eclipse CDT视图中收到了类似你的错误。
我关闭了当前项目,我打开了一个新的“包含现有代码的Makefile项目”,指定了项目的正确位置源位置。在此之后,我检查了: 右击项目/ C ++通用/路径和符号/ Gnu C ++ / include目录不为空,包括我项目的正确路径。
然后,我重建了索引(右键单击/索引/重建)。
另外,我使用的是Eclipse CDT 7而不是Eclipse CDT 8,因为CDT8有时会从GUI中提供我无法解决的编译错误,尽管makefile很好。
答案 3 :(得分:2)
在stddef.h
中定义了NULL,但stddef.h
位于xxx/include/linux
而不是xxx/include
- >即使您添加了MingW xxx/include
,仍然找不到NULL
将MingW的include/linux
路径添加到您的项目中
(1)我的xscale交叉编译器的include/linux
路径示例为:/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/linux
答案 4 :(得分:1)
我刚刚修正了这样的错误,并认为没有其他人找到我发布的解决方案。我发现stdlib在我的AVR GCC编译器中声明了NULL为___need_NULL。这导致Eclipse IDE出错。然而,错误是由于Coden Analysis没有发现异常而导致无法找到符号。您可以在“常规 - >启动/关闭”下的“首选项”中关闭Coden,或者在C / C ++代码分析中更改其行为。
这可以解释其他人正在经历的随机性
答案 5 :(得分:1)
我认为您尚未添加定义 NULL 的头文件。添加stdlib.h(#include语句)。它定义了NULL宏。
答案 6 :(得分:0)
我在这里寻找答案,因为我发现CDT有时无法解析标准库的标题。我仍然不知道为什么以及如何重现这个bug。只需重新启动CDT即可解决所有问题。
答案 7 :(得分:0)
我遇到了同样的错误,我通过右键单击您的项目来修复它,将鼠标悬停在索引选项卡上,然后单击“重建”。之后我的错误就消失了。
答案 8 :(得分:0)
只需将C:\MinWG\lib
添加到Eclipse的库路径中。
答案 9 :(得分:0)
我也遇到类似的问题,即“无法解析符号精灵魔法”,并且已经包含了精灵标题。我认为问题可能是由库缓存引起的,对于重启软件可以解决问题。感谢别人的帮助。
答案 10 :(得分:0)
以上建议没有对我有所帮助。 每次打开文件时,exclipse都会报告几十个错误。
最终有什么帮助: 关闭所有文件,然后手动删除错误(右键单击“问题”窗口中的错误列表),然后执行重建索引。
答案 11 :(得分:0)
这个问题在2019年仍然会出现...有许多不同的原因/解决方案。
我在NULL和stdio.h(stderr,printf等)中的所有内容的编辑器中都得到了未解析的符号,但编译正常。在我进入项目属性并删除一堆不必要的C / C ++包含路径之前,没有任何帮助。之后,重新索引解决了该问题。
在另一种情况下,我有一个未定义的类名称符号,该符号涉及某些条件预处理器宏欺骗。在C / C ++索引器选项(选中“启用项目特定的设置”之后)中,将定义宏的标头文件添加到“为特定标头的所有变体编制索引”中对其进行了修复。
这表明蚀CDT索引器很容易混淆。
答案 12 :(得分:0)
在Linux上将${COMMAND}
设置为gcc
在“预处理程序包含路径,宏等”下和“ CDT GCC内置编译器设置”,如果您从现有Makefile项目中导入源,则存在一个未定义的${COMMAND}
变量。
Eclipse尝试运行该命令以解析其stdout以查找标头,但是默认情况下未设置${COMMAND}
,因此它无法这样做。
我已经在"Unresolved inclusion" error with Eclipse CDT for C standard library headers
上对此进行了更详细的解释。