如何将 ref 添加到 Makefile 中的 1 头文件

Posted

技术标签:

【中文标题】如何将 ref 添加到 Makefile 中的 1 头文件【英文标题】:How to add a ref to a 1 header file in the Makefile 【发布时间】:2015-06-01 14:08:20 【问题描述】:

要引用包含头文件 (.h) 的文件夹,我将以下行添加到我的 Makefile 中

CFLAGS+=-I/any/folder/include/

现在我只想引用文件夹中的一个文件。

我试过了

CFLAGS+=-I/any/folder/include/any.h

但它不起作用

如何才能在一个文件夹中只引用一个头文件?

【问题讨论】:

google.com/search?q=gcc+include+file “引用标题”是什么意思?你想让make 对标头做什么? @juanchopanza 我希望我的 c 代码只看到同一文件夹中的 any.h 文件而不是其他头文件,因为存在与其他文件夹勾结的风险 @MOHAMED 既然这是您的实际问题,请将其添加到问题中。 (顺便说一句,它与 makefile 完全无关。) 【参考方案1】:

您无法使用纯 gcc 编译器标志真正授予对包含其他文件的文件夹之外的单个头文件的可见性。

避免标题冲突的更好方法是将相关标题放在具有有意义名称的文件夹中,例如

/any/folder/include/foo

然后将/any/folder/include添加到包含搜索路径

CPPFLAGS += I/any/folder/include

在你的源代码中

#include "foo/any.h"

【讨论】:

【参考方案2】:

如果使用 GCC:

CFLAGS += -include /path/to/file.h

对于 MSVC:

CFLAGS += -FI path/to/file.h

这将包括file.h 在使用CFLAGS 编译的每个源文件的请求中。


编辑:因为我现在明白你想要做什么:

只需更改将标头传递给编译器的顺序,将其放在最后。所以它会先搜索所有其他的。

【讨论】:

这是毒柜中的选项之一,它使调试会话真正有趣。 讽刺> 如果你想真的讽刺,把重点放在有趣上。 @DevSolar 所以首先包含不明确的标头。我想假设 OP 知道他们在做什么,并且只想对编译器命令的技术细节进行一些输入。 :)

以上是关于如何将 ref 添加到 Makefile 中的 1 头文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 pkg-config 添加到 Makefile?

使用 Makefile 将 PCL(点云库)添加到现有项目

将命令行参数添加到 Makefile [重复]

如何在makefile中使用cflow?

将perl脚本添加到makefile

如何在Makefile中将$ dir添加到$ PATH?