如何在 gnu makefile 中仅删除一个文件的 -D ?

发布于 2024-08-30 04:24:18 字数 517 浏览 5 评论 0原文

我的 CXXFLAGS 中有“-Wredundant-decls”,但对于一个文件,我希望将其删除。

在我的 GNU makefile 中,如何构建规则来仅删除 CXXFLAGS 的那部分。

我知道如何仅添加该文件,我会做这样的事情:

$O/just_one_file.o: CXXFLAGS += -Wredundant-decls

所以,理想情况下我会做这样的事情(这不起作用)来删除它:

$O/just_one_file.o: CXXFLAGS -= -Wredundant-decls

但是,也许通过一些 $ 魔法,我可以构造一些一种 sed 或 perl 脚本,用于删除 -Wredundant-decls 并将 CXXFLAGS 设置为删除的值:

$O/just_one_file.o: CXXFLAGS = $(shell strip magic here for $CXXFLAGS)

I have '-Wredundant-decls' in my CXXFLAGS but for one file, I want it removed.

In my GNU makefile, how can I structure a rule to remove just that part of the CXXFLAGS.

I know how to add only for that file, I would do something like this:

$O/just_one_file.o: CXXFLAGS += -Wredundant-decls

So, ideally I'd do something like this (which doesn't work) to remove it:

$O/just_one_file.o: CXXFLAGS -= -Wredundant-decls

However, maybe with some $ magic, I can construct some kind of sed or perl script to strip out the -Wredundant-decls and set CXXFLAGS to the stripped value:

$O/just_one_file.o: CXXFLAGS = $(shell strip magic here for $CXXFLAGS)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

起风了 2024-09-06 04:24:18

不需要外壳:

$O/just_one_file.o: CXXFLAGS := $(subst -Wredundant-decls,,$(CXXFLAGS))

$O/just_one_file.o: CXXFLAGS := $(filter-out -Wredundant-decls,$(CXXFLAGS))

No need for the shell:

$O/just_one_file.o: CXXFLAGS := $(subst -Wredundant-decls,,$(CXXFLAGS))

or

$O/just_one_file.o: CXXFLAGS := $(filter-out -Wredundant-decls,$(CXXFLAGS))
迷路的信 2024-09-06 04:24:18

好吧,我自己想出来了:

$O/just_one_file.o: CXXFLAGS := $(shell echo ${CXXFLAGS} | sed s/-Wredundant-decls//g)

Okay, I figured it out for myself:

$O/just_one_file.o: CXXFLAGS := $(shell echo ${CXXFLAGS} | sed s/-Wredundant-decls//g)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文