我有一个自动工具项目(c ++),可以在启动板ppa上为其构建软件包
最近,我尝试将python包添加到该存档中。我已经在本地使用bzr dh-make
并对其进行了测试pbuilder
。两者的工作都很棒。在启动板上虽然没有喜悦。
构建日志之一在这里
您会看到问题出在自动生成的安装目标上。在安装python模块时,它会发出警告,然后重新链接该模块。我进行了一些快速研究,似乎完全没问题
这是在Makefile.am
与添加的Python模块的目标:在启动板两端的生成日志中的错误了一句话:
/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
?
看来其他人可以确认与我在此列表中看到的内容相同。
因此确实确实发现问题出在并行构建,尤其是在重新链接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
,这将避免在重新链接python模块时libtool正在寻找尚不存在的lib(在上面的链接中进行描述)时出现的竞争情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句