我正在使用DebHelper创建一个Debian包,它位于Debian的最新稳定版本之下。
"debian/control“文件包括以下几行:
Depends:
${shlibs:Depends},
${misc:Depends}因此,在创建的包中自动设置依赖项。然而,libstdc++所需的版本太严格了。这个包需要libstdc++6 (>= 4.9),我希望将它设置为libstdc++6 (>= 4.8)。
为此,在阅读这个页面和这个页面时,我编辑了"debian/rules“文件,现在看起来如下:
#!/usr/bin/make -f
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
%:
dh $@
override_dh_makeshlibs:
dh_makeshlibs -V 'libstdc++6 (>= 4.8)'然而,最后两行并没有完成这项工作。有人已经在Debian包上做过这种定制了吗?
谢谢
发布于 2015-05-31 18:49:39
通常情况下,debhelper在检测依赖项方面做得很好。
如果它说您的包需要libstdc++6 (>= 4.9),那么您的包很可能需要这个特定的版本,并且会失败,例如libstdc++6-4.8。(如果你不相信我的话,试一试;在一个只有libstdc++6-4.8安装的系统上强制安装你的软件包,看看是否一切正常)
如果有些人声称可以使用libstd++6-4.8 (或者更确切地说是gcc-4.8)构建它,那么我看到了一些可能性:
最有可能的情况是第二点。
这可能有很多原因,例如:-如果您的包检测到libstdc++6-4.9,它会自动启用功能-- libstdc++6中的一些实现细节发生了更改,这使得产生的二进制文件不兼容(或者至少:不向后兼容)。
如果您想要一个可以与libstdc++6 == 4.8一起使用的包,那么就应该使用libstdc++6-4.8 (或者最有可能的是:整个g++4.8工具链)来构建包。
https://stackoverflow.com/questions/30556057
复制相似问题