我有一个自动工具项目(c++),我在发射台ppa上为它构建包
最近,我尝试向这个归档文件中添加一个python包。我已经用bzr dh-make和pbuilder在本地测试了它。两个人都工作得很出色。在发射台上虽然没有喜悦。
构建日志之一是这里。
您将看到问题在于自动生成的安装目标。当它安装python模块时,它会发出警告,然后重新链接该模块。我做了一些快速的研究和看上去完全没问题
这是带有添加的python模块目标的Makefile.am:在启动盘上的构建日志中的错误最后会说:
/usr/bin/ld: cannot find -lvalhalla
collect2: error: ld returned 1 exit status
libtool: error: error: relink 'valhalla.la' with the above command before installing it
Makefile:2265: recipe for target 'install-pyexecLTLIBRARIES' failed
make[3]: *** [install-pyexecLTLIBRARIES] Error 1奇怪的是,并不是所有人都失败了。也许这与并发有关。
我注意到它运行的命令是make -j4 install,然后在重新链接时,它似乎说找不到-lvalhalla,这是项目创建的主库的名称。它似乎同时安装多个东西,也许这就是问题所在。也许我可以只覆盖dh_auto_install文件中的debian/rules目标?
看来其他人可以确认我在这个列表中看到的情况。
发布于 2017-01-07 16:21:22
因此,事实确实证明,问题是与并行构建有关,特别是在python模块被重新链接时,其他东西还没有被处理好。修复也确实不是一个修复,而是更多的工作,这正是我所建议的。
也就是说,我只是将这个目标添加到我的debian/rules文件中:
#because python module depends on main library and somehow dependency is not known we must limit parallelism
override_dh_auto_install:
dh_auto_install --max-parallel=1--max-parallel=1位将限制它运行make -j1 install,这将避免libtool在重新连接python模块时寻找一个尚未存在的库(在上面的链接中描述)的争用条件。
https://askubuntu.com/questions/868772
复制相似问题