当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-03 10:53 

注册: 2011-04-24 10:55
帖子: 7
送出感谢: 1
接收感谢: 0 次
使用debuild -S构建源码包时,运行lintian检查时出错,下面的英文时报错时提供的解决方法,没用。而且这个库确实是存在啊,而且就在工程的根目录,怎么就找不着呢?
Now running lintian...
E: serials source: source-is-missing libQt5Core.so.5.2.1
N:
N: The source of the following file is missing. Lintian checked a few
N: possible paths to find the source, and do not find it.
N:
N: Please repack your package to include the source or add it to
N: "debian/missing-sources" directory.
N:
N: If this is a false-positive, please report a bug against Lintian.
N:
N: Severity: serious, Certainty: possible
N:
N: Check: cruft, Type: source
......
Finished running lintian.
难道时打包源码包的时候不能由共享库?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-04 20:21 
头像

注册: 2008-09-18 13:11
帖子: 2781
送出感谢: 1
接收感谢: 453
它说的是libQt5Core.so.5.2.1的源代码没找到,不是库本身没找到。既然是“源码包”,为什么要包含一个编译好的库?直接依赖qtbase5-dev不就行了?
如果你非要把库打包进去,debuild也可以传个--no-lintian来略过lintian检查这步


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-05 9:53 

注册: 2011-04-24 10:55
帖子: 7
送出感谢: 1
接收感谢: 0 次
astolia 写道:
它说的是libQt5Core.so.5.2.1的源代码没找到,不是库本身没找到。既然是“源码包”,为什么要包含一个编译好的库?直接依赖qtbase5-dev不就行了?
如果你非要把库打包进去,debuild也可以传个--no-lintian来略过lintian检查这步

本来是打包成deb的,为了在没装Qt的电脑上也能用,所以把用到的共享库都打包了。并写好了安装脚本把这些库都装到了一个目录(如/usr/lib/foo)。
现在需要上传到ppa,需要上传源码包,但是如果这些库都不打包,这意味着脚本需要修改,安装的目录结构需要修改(不需要foo目录来放库文件了)。这样,直接用deb包安装和通过apt-get install 安装同一软件将产生不同的目录。还有一个问题,系统中那么多库,我怎么确定每个库对应的软件包,并把它源码找到?(比如,怎样确定Qt5的库对应的软件包是qtbase5-dev 而不是qt5-dev或其它名字,有什么地方查询??)针对现实的这个问题,是不是意味着,我要下载qtbase5-dev并修改control文件?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-05 14:51 
头像

注册: 2008-09-18 13:11
帖子: 2781
送出感谢: 1
接收感谢: 453
既然你弄ppa,就说明不是个闭源软件,那就按照开源的方案来呗。
你的control就这么写
引用:
Source: xxx
Build-Depends: qtbase5-dev
...

Package: xxx
Depends: ${shlibs:Depends}, ${misc:Depends}
...

编译时需要qtbase5-dev,生成的deb安装包自动根据实际情况设置相关库依赖。你就直接把ppa上编译出deb包给人用,最多叫对方用gdebi而不是dpkg安装,不存在什么产生不同的目录的问题

你的第二个问题更奇怪了,你既然能把程序编译出来,说明程序需要的头文件你系统上都有。如果你是从源里安装的qt的开发包,那直接依赖那个开发包的名字就是了
如果非要从库文件倒推开发包的话,先dpkg-query -S libQt5Core.so.5.2.1找到对应的库包是libqt5core5a,然后再找依赖这个库包的开发包有哪些apt-cache rdepends libqt5core5a | grep -E -- '-dev$'



_________________
评价: 3.7% 鹤舞九天
 
页首
 用户资料  
 
5 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-26 13:15 

注册: 2011-04-24 10:55
帖子: 7
送出感谢: 1
接收感谢: 0 次
astolia 写道:
既然你弄ppa,就说明不是个闭源软件,那就按照开源的方案来呗。
你的control就这么写
引用:
Source: xxx
Build-Depends: qtbase5-dev
...

Package: xxx
Depends: ${shlibs:Depends}, ${misc:Depends}
...

编译时需要qtbase5-dev,生成的deb安装包自动根据实际情况设置相关库依赖。你就直接把ppa上编译出deb包给人用,最多叫对方用gdebi而不是dpkg安装,不存在什么产生不同的目录的问题

你的第二个问题更奇怪了,你既然能把程序编译出来,说明程序需要的头文件你系统上都有。如果你是从源里安装的qt的开发包,那直接依赖那个开发包的名字就是了
如果非要从库文件倒推开发包的话,先dpkg-query -S libQt5Core.so.5.2.1找到对应的库包是libqt5core5a,然后再找依赖这个库包的开发包有哪些apt-cache rdepends libqt5core5a | grep -E -- '-dev$'


非常感谢,解决了我不少的疑惑,现在,我直接不打包库文件了,源码包可以上传了。但是在PPA编译时报错:
Can't exec "qmake": No such file or directory at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 218.
dh_auto_configure: qmake -makefile -nocache QMAKE_CFLAGS_RELEASE=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CFLAGS_DEBUG=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CXXFLAGS_RELEASE=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_CXXFLAGS_DEBUG=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 QMAKE_LFLAGS_RELEASE=-Wl,-Bsymbolic-functions -Wl,-z,relro QMAKE_LFLAGS_DEBUG=-Wl,-Bsymbolic-functions -Wl,-z,relro QMAKE_STRIP=: PREFIX=/usr failed to to execute: No such file or directory
make: *** [build-arch] Error 2
dpkg-buildpackage: error: debian/rules build-arch gave error exit status 2

它说没找到qmake,在PPA里的源码是官方编译的,官方的环境没有qmake?看起来就差最后一步了,真是太闹心了。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-05-26 20:05 
头像

注册: 2008-09-18 13:11
帖子: 2781
送出感谢: 1
接收感谢: 453
ppa预先设置的编译环境实际就是build-essential包,其他要用到的工具都需要写到control文件里的Build-Depends中,你自己加个qt5-qmake就是了


页首
 用户资料  
 
7 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-06-02 19:56 

注册: 2011-04-24 10:55
帖子: 7
送出感谢: 1
接收感谢: 0 次
astolia 写道:
ppa预先设置的编译环境实际就是build-essential包,其他要用到的工具都需要写到control文件里的Build-Depends中,你自己加个qt5-qmake就是了

是管用了,但是还是有错
qmake: could not find a Qt installation of ''
这个错误应该是找不到安装的qmake,如果出现在我自己电脑上,我可以修改PATH,但是出现ppa的编译时,真是束手无策。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: ubuntu上Qt软件打包报错
帖子发表于 : 2015-06-03 9:45 

注册: 2011-04-24 10:55
帖子: 7
送出感谢: 1
接收感谢: 0 次
已经解决了,现在可以通过sudo apt-get install 安装我的软件了。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译