“未解决的包容性”错误与Eclipse CDT的C标准库头
我设立了CDT Eclipse和写了一个简单的hello world C程序:“未解决的包容性”错误与Eclipse CDT的C标准库头
#include <stdio.h>
int main(void){
puts("Hello, world.");
return 0;
}
该方案建立和运行正常,但日食一直显示这当我将鼠标放在它上面时,表示"Unresolved inclusion: <stdio.h>"
的包含语句旁边的黄色问号。
它不影响程序的运行,但我觉得它很烦人。
有没有人有任何想法如何删除它?
编译器的Eclipse使用是能够解决的符号就好了,这样的代码将编译好的。
但代码完成/预处理Eclipse是用不知道从哪里stdio.h中存在。
您需要指定stdio.h所在的文件系统路径。
参见:http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/tasks/cdt_t_proj_paths.htm
感谢您的答复。但是Ubuntu 11.10的路径在哪里? – 2012-02-18 02:23:54
问题解决。它在/ usr/include中。再次感谢。 – 2012-02-18 02:40:12
让我困惑的一件事是,我不得不将路径添加到“包含”选项卡,而不是“库路径”选项卡。我一直认为“角架”包括“图书馆”在内。 – aaaidan 2012-07-07 05:24:36
- 选择文件>>新建项目
- 在项目向导中,选择C/C++ >> C++项目
- 在 “项目类型” 部分中,选择“生成文件项目>>世界,你好C++项目”
- 在“工具链”部分中,选择“李nux GCC“
它可以解决问题。 (请原谅我的英语很差)
我找到这些问题的答案(包括接受的)有些神秘。
对于我来说,我不得不添加其中stdio.h中所在的路径(如@ardnew说的)。在Eclipse中,打开项目的属性,展开“C/C++常规”并选择“路径和符号”。
确保您已经添加了include
DIR您所使用的每种语言。 (在我的情况,我需要只需将其添加到GNU C++)
这是非常接近我需要的!只需要更改路径中的用户名。 – Lucas 2013-10-08 08:26:31
在OS X上,您可能需要使用命令'/ usr/bin/xcode-select --install'手动安装命令行开发人员工具(首先需要安装Xcode),然后您可以将Eclipse指向'/usr/include /' – RobV 2014-04-15 22:24:55
关于优胜美地。使用Eclipse Juno。除了我给出的路径有点不同(/ Users/SrinivasanNatarajan/android-ndk/platforms/android-19/arch-arm/usr/include)之外,这种方法对我很有用。尽管所有未解决的错误都消失了,但我仍然怀疑'我是否设置了正确的路径'。 “Eclipse真的很糟糕”。必须花费数小时才能设置IDE进行开发。 – 2015-04-01 10:22:36
只是增加了知识基础,我只是做这与cygwin的WIN7。
这是什么似乎为我工作。
包括路径,C:
D:\dev\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include
D:\dev\cygwin\usr\include
包括C++的路径:
D:\dev\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include
D:\dev\cygwin\lib\gcc\i686-pc-cygwin\3.4.4\include\c++
D:\dev\cygwin\usr\include
这让我的Hello World的全新的编译。
我是来自未来。我来说声谢谢。这实际上是对我而言的第一件事情。我从未有过这样一个困难的问候世界。谢谢你,先生。 – nVentimiglia 2014-07-13 15:57:26
不客气。 – 2014-07-14 03:31:20
在ADT我做了以下内容:
- 右键单击该项目并选择Properties
- 扩展C/C++通用和选择预处理器包括路径,宏等
- 选择CDT用户设置项
- 选择添加...从右手菜单
- 在添加包括目录更改项目路径文件系统路径
- 浏览到包含您的包含文件
- 搅拌,并根据需要
转到项目重复目录>属性> C/C++常规>预处理程序包含>提供商 并选择“CDT GCC内置的编译器设置“和”CDT CROSS GCC内置编译器设置“。
...并勾选“使用全球提供商之间共享的项目”框 – Urhixidur 2016-12-06 17:39:09
我还必须检查“使用全球提供商之间共享的项目”作为@Urhixidur提到。我尝试了大量的解决方案,这个内置的eclipse错误,这是真正为我工作的。这些线路很烦人。谢谢! – CodeGuyRoss 2017-09-26 15:42:33
我使用的Eclipse与Cygwin和这个工作对我来说:
转到项目>属性> C/C++常规>预处理程序包含...>提供商 并选择“CDT GCC内置的编译器设置Cygwin [共享]“。
通常情况下,Eclipse应该能够自动解析标准的包含文件。它通过调用gcc并询问其配置来完成此操作。 Eclipse很可能没有找到你的gcc(或者至少不是你用于编译的版本)。
而不是指定项目设置中的所有标准包含路径,您可能想确保Eclipse找到gcc。在启动Eclipse之前,将找到gcc的目录添加到PATH环境变量中。
如果您希望不同的项目使用不同的编译器,那么您可能需要调整发现选项。这些在默认情况下是隐藏的,所以首先从窗口>首选项> C/C++>属性页面设置>显示“发现选项”页面启用它们。然后你可以在项目属性中的C/C++ Build> Discovery Options下找到它们。
我正在与多个交叉编译器配置,其中我需要使用不同位置的STD头文件(和其他环境变量)。
解决方法是设置索引器,使其使用活动配置。
不幸的是,由于一些bug in eclipse,则该选项没有存储在本地,所以你必须,如果你想再次当你打开Eclipse将配置保存到使用工作区配置。
窗口 - >首选项 - > C/C++ - >索引 - >使用积极构建配置
这将使日食使用设置与项目的积极十字GCC配置正确的编译器。
有同样的问题,交叉编译到ESP8266。太糟糕了,这个页面如此拥挤,不得不自己弄清楚。 – 2016-05-07 12:35:45
谢谢你。在创建多个交叉编译器配置(针对不同版本的ESP32“ESP-IDF”嵌入式SDK)后,我也遇到了这个问题。索引器没有拾取正确的标题。此设置似乎允许索引器使用相同的环境作为活动配置,在我的情况下,它允许它拿起正确的标题。 – meowsqueak 2018-01-17 02:32:29
作为(当前)顶部的答案笔记,有必要指定构建文件夹的位置,可以通过右键单击项目,然后选择Properties-> C/C++ General- >路径和符号。
剩下的问题就是需要添加什么样的路径。
如果你交叉编译或做一些花哨的,你可能知道你需要什么路径,并以何种顺序(或应该看看你的编译器和/或其他依赖的文档)。
对于那些寻找最基础的:如果你有GCC设置正确的命令行访问,并需要知道什么是默认包括它使用的路径,只问它。
根据你的语言感兴趣,用途:
gcc -x c -v -E /dev/null
gcc -x c++ -v -E /dev/null
...这将列出所使用的默认编译器设置调用gcc的时候(这个命令也能当“海湾合作委员会”是真的是clang的别名,就像在OSX上一样)。
在Windows上,注意/dev/null
只是一个空文件输入一个简单的简写(而无需创建一个)。
朝下方将是列表的include目录:
#include "..." search starts here:
#include <...> search starts here:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks (framework directory)
End of search list.
如果输入上市,成为Eclipse的路径和符号对话框这里列出的目录,顺序是,Eclipse CDT应该能够找到标准头文件,也许还有一些特定于您的操作系统的额外头文件
(与感谢devnull's answer到一个相关的问题。)
我米使用基于CodeWarrior IDE的嵌入式项目蚀和我刚通过删除和添加再次源地址,以项目投资Properities->Ç解决了这个问题/ C++ General-> Path和Sybols-> Include Directories。这意味着有很多理由采取“未解决的包含:”的信息,也有很多解决方案。
你会认为,Hello World示例会为你做到这一点,或至少提供一些帮助。如果eclipse不包含编译器,为什么不呢? – 2012-08-03 21:07:04
http://*.com/questions/7905025/string-could-not-resolved-error-in-eclipse-for-c – Vanuan 2012-10-22 10:07:39