13

我收到了一个包裹:

$ apt-get source <pkg-name>

现在我正在尝试使用以下方法构建它:

$ dpkg-buildpackage -uc -us -j8

在输出的开头,声明:

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

我想覆盖这些 CFLAGS(也就是 LDFLAGS)。我已经尝试导出 CFLAGS envvar,就像我们使用普通配置一样,但无济于事。如何覆盖这些值?

4

1 回答 1

28

您尝试重建的包,使用从dpkg-buildflags.

如果您出于自己的目的需要覆盖这些标志,您应该告诉dpkg-buildflags提供您想要的标志,而不是(强化)默认值。看man dpkg-buildflags,你会找到关于环境变量的部分,特别是。见DEB_flag_SETDEB_flag_APPEND

所以这应该可以解决问题(填写您自己的 *FLAGS):

$ DEB_CPPFLAGS_SET="-I/foo/bar/baz" DEB_CFLAGS_SET="-g -O6" DEB_LDFLAGS_SET="-L/fruzzel/frazzel/" dpkg-buildpackage -uc -us -j8 -rfakeroot
于 2012-06-20T07:49:08.077 回答