Ubuntu 如何覆盖dpkg构建标志CFLAGS?

Ubuntu 如何覆盖dpkg构建标志CFLAGS?,ubuntu,build,debian,dpkg,Ubuntu,Build,Debian,Dpkg,我收到一个包裹,上面写着: $ apt-get source <pkg-name> 在输出开始时,说明: dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security dpkg-buildpackage: export CPPFLAGS from

我收到一个包裹,上面写着:

$ apt-get source <pkg-name>
在输出开始时,说明:

dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro

我想覆盖这些cflag(还有LDFLAGS)。我尝试过导出CFLAGS envvar,与普通配置的方法相同,但没有成功。如何覆盖这些值?

您试图重建的包使用从
dpkg buildflags
检索的强化特定标志设置(读取:覆盖)*标志

如果出于自己的目的需要覆盖这些标志,则应告知
dpkg buildflags
以提供所需的标志,而不是(强化)默认值。 查看
man-dpkg-buildflags
,您可以找到关于环境变量的部分,特别是参见
DEB\u-flag\u-SET
DEB\u-flag\u-APPEND

因此,这应该可以做到(填写您自己的*标志):


如果看起来dpkg buildflags没有运行该怎么办?将其添加到包中有多难?是否有其他命令?此答案可能不再是最新的。(请参阅)最近的一项建议是,在您使用apt get source下载的发行版中编辑debian/rules脚本,并搜索CFLAGS/cxfFlags/LFLAGS的实例。@davemcmorde推荐人是谁?但实际上,有些软件包可能会忽略
DEB\u CFLAGS\u SET
。我在看你,Debian 6上的exim4。在这种情况下,您可以执行dpkg buildpackage-R'make-f debian/rules CFLAGS=-g3。或
dpkg buildpackage-R'sh./1.sh'
,其中
1.sh
make-f debian/rules CFLAGS='-g3-Og'$@“
(如果您的命令需要引号)。另一方面,如果我要调试一个程序,我会选择
-g3-Og
或者只选择
-g3
(如果
-Og
不受支持)
-g
可能也足够了,但生成的图像不包含宏信息(不能在表达式中使用宏)。
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
$ DEB_CPPFLAGS_SET="-I/foo/bar/baz" DEB_CFLAGS_SET="-g -O6" DEB_LDFLAGS_SET="-L/fruzzel/frazzel/" dpkg-buildpackage -uc -us -j8 -rfakeroot