首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >#include -从<>切换到"“后生成失败

#include -从<>切换到"“后生成失败
EN

Stack Overflow用户
提问于 2018-03-21 07:20:59
回答 2查看 81关注 0票数 3

Nokogumbo的C实现中的提交导致Gentoo Linux上的构建失败,但是修改很小,不应该造成任何麻烦。不幸的是,我知道齐尔奇旁边的C。

以下是承诺:

https://github.com/rubys/nokogumbo/commit/8b4446847dea5c614759684ebcae4c580c47f4ad

它简单地将<>替换为""

代码语言:javascript
复制
-#include <gumbo.h>
-#include <error.h>
-#include <parser.h>
+#include "gumbo.h"
+#include "error.h"
+#include "parser.h"

根据GCC博士,这不应该造成任何麻烦,因为它回到了以前的行为:

#include "file" 此变体用于您自己程序的头文件。它首先在包含当前文件的目录中搜索名为file的文件,然后在引号目录中搜索,然后搜索用于<file>的相同目录。您可以使用-iquote选项将目录添加到引号目录列表中。

不幸的是,虽然它在<>中编译得很好,但是构建在""中失败了。

代码语言:javascript
复制
compiling nokogumbo.c
nokogumbo.c:24:20: fatal error: parser.h: No such file or directory
#include "parser.h"

我想知道<>""的行为方式在多大程度上取决于工具链、环境和其他设置。

非常感谢你的提示!

EN

回答 2

Stack Overflow用户

发布于 2018-03-21 19:58:48

在Gentoo盒上重新安装"gumbo“已经解决了问题。显然,当地的安装混乱导致了这种奇怪的行为。

票数 0
EN

Stack Overflow用户

发布于 2018-03-21 07:51:09

我检查了您的git存储库,注意到您使用--std=c99编译代码。我认为这可能会导致问题,因为我在C99草案中发现了这一点:

以不支持此搜索的实现定义的.If方式搜索命名源文件,或者如果搜索失败,则重新处理指令,就像读取指令一样。

代码语言:javascript
复制
#include <header>

因此,它意味着流程是首先定义的,而(如果不支持)则使用#include<>模式。但这意味着,如果它定义#include""搜索当前目录,它将停止搜索,就像#include<>一样。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49400397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档