我收到了一个包裹:
$ 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,就像我们使用plain configure一样,无济于事。我该如何覆盖这些值?
答案 0 :(得分:21)
您尝试重建的软件包,使用从dpkg-buildflags
检索到的强化特定标志设置(读取:覆盖)* FLAGS。
如果你需要为自己的目的覆盖这些标志,你应该告诉dpkg-buildflags
提供你想要的标志,而不是(强化)默认值。
查看man dpkg-buildflags
,您会找到有关环境变量的部分,尤其是。请参阅DEB_flag_SET
和DEB_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