首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Launchpad构建Python扩展包

为Launchpad构建Python扩展包
EN

Ask Ubuntu用户
提问于 2017-01-06 16:25:22
回答 1查看 136关注 0票数 1

我有一个自动工具项目(c++),我在发射台ppa上为它构建包

最近,我尝试向这个归档文件中添加一个python包。我已经用bzr dh-makepbuilder在本地测试了它。两个人都工作得很出色。在发射台上虽然没有喜悦。

构建日志之一是这里

您将看到问题在于自动生成的安装目标。当它安装python模块时,它会发出警告,然后重新链接该模块。我做了一些快速的研究和看上去完全没问题

这是带有添加的python模块目标的Makefile.am:在启动盘上的构建日志中的错误最后会说:

代码语言:javascript
复制
/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目标?

看来其他人可以确认我在这个列表中看到的情况。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2017-01-07 16:21:22

因此,事实确实证明,问题是与并行构建有关,特别是在python模块被重新链接时,其他东西还没有被处理好。修复也确实不是一个修复,而是更多的工作,这正是我所建议的。

也就是说,我只是将这个目标添加到我的debian/rules文件中:

代码语言:javascript
复制
#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模块时寻找一个尚未存在的库(在上面的链接中描述)的争用条件。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/868772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档