Nokogumbo的C实现中的提交导致Gentoo Linux上的构建失败,但是修改很小,不应该造成任何麻烦。不幸的是,我知道齐尔奇旁边的C。
以下是承诺:
https://github.com/rubys/nokogumbo/commit/8b4446847dea5c614759684ebcae4c580c47f4ad
它简单地将<>替换为""。
-#include <gumbo.h>
-#include <error.h>
-#include <parser.h>
+#include "gumbo.h"
+#include "error.h"
+#include "parser.h"根据GCC博士,这不应该造成任何麻烦,因为它回到了以前的行为:
#include "file"此变体用于您自己程序的头文件。它首先在包含当前文件的目录中搜索名为file的文件,然后在引号目录中搜索,然后搜索用于<file>的相同目录。您可以使用-iquote选项将目录添加到引号目录列表中。
不幸的是,虽然它在<>中编译得很好,但是构建在""中失败了。
compiling nokogumbo.c
nokogumbo.c:24:20: fatal error: parser.h: No such file or directory
#include "parser.h"我想知道<>和""的行为方式在多大程度上取决于工具链、环境和其他设置。
非常感谢你的提示!
发布于 2018-03-21 19:58:48
在Gentoo盒上重新安装"gumbo“已经解决了问题。显然,当地的安装混乱导致了这种奇怪的行为。
发布于 2018-03-21 07:51:09
我检查了您的git存储库,注意到您使用--std=c99编译代码。我认为这可能会导致问题,因为我在C99草案中发现了这一点:
以不支持此搜索的实现定义的.If方式搜索命名源文件,或者如果搜索失败,则重新处理指令,就像读取指令一样。
#include <header>因此,它意味着流程是首先定义的,而(如果不支持)则使用#include<>模式。但这意味着,如果它定义#include""搜索当前目录,它将停止搜索,就像#include<>一样。
https://stackoverflow.com/questions/49400397
复制相似问题