gpt4 book ai didi

linux - config.mk 中的 CPPFlags

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:06 24 4
gpt4 key购买 nike

在用于 surf 浏览器的 Arch Linux PKGBUILD 中,有:

sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk
sed -i 's/CFLAGS =/CFLAGS +=/g' config.mk
sed -i 's/LDFLAGS =/LDFLAGS +=/g' config.mk

为什么必须更改标志

CPPFLAGS = -DVERSION=\"${VERSION}\"

CPPFLAGS += -DVERSION=\"${VERSION}\"

我已经查看了谷歌,但没有看到任何关于此的内容。有人可以解释并告诉我在哪里可以阅读更多关于这些标志的信息吗?

最佳答案

我做了很多谷歌搜索,发现这种模式(Surf 的是 here )在 Arch Linux PKGBUILD 文件中似乎很常见。另一个例子是 DWM's PKGBUILD .

显然它正在修补 config.mk文件,以便在调用 make 时,将值附加到标志而不是覆盖标志(必须已经在别处设置)。因此,必须保留现有设置。这似乎只是由包构建器默认完成的,因此很难找到原因。

进一步观察我发现this bug report与 DWM 的 config.mk 文件相关,作者指出该文件的一个版本覆盖了 makepkg.conf 中设置的标志,即 main configuration file for makepkg ,它允许调整每台机器的编译设置。对于您的发现,这似乎是一个合理的解释。在该页面中,CFLAGS 的默认值如下所示:

CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"

因此,修补后的 config.mk 文件在构建包时会产生以下结果:

CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -std=c99 -pedantic -Wall -Os -I. ....."

关于linux - config.mk 中的 CPPFlags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com