一个简单的QT程序
一个简单的程序,并没有列出pro文件,目录为helloworld。
<code>
#include <QCoreApplication>
#include <stdio.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
printf("Hello world\n");
return a.exec();
}
</code>
使用dpkg工具生成deb框架
首先我们需要把helloworld目录修改为packagename-version这样的形式,然后使用dh_make名称生成deb软件包的基本框架。
<code>crystal@crystal:~/workspace$ mv helloworld/ helloworld-1.0/
crystal@crystal:~/workspace$ cd helloworld-1.0/
crystal@crystal:~/workspace/helloworld-1.0$ dh_make --createorig
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
[s/i/m/l/k/n] s
Maintainer name : crystal
Email-Address : crystal@unknown
Date : Thu, 28 Apr 2016 16:55:47 +0800
Package Name : helloworld
Version : 1.0
License : blank
Type of Package : Single
Hit <enter> to confirm:
Currently there is no top level Makefile. This may require additional tuning.
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the helloworld Makefiles install into $DESTDIR and not in / .
</code>
修改debian/文件
1.修改debian/control文件
<code>
Source: helloworld
Section: optional
Priority: optional
Maintainer: crystal wybcrystal@gmail.com
Build-Depends: debhelper (>= 9),build-essential, libqt4-dev, qt4-default
Standards-Version: 3.9.5
Homepage: www.jianshu.com
Package: helloworld
Architecture: any
Depends: libqt4-dev, qt4-default
Description:
this is a test , not any problem
</code>
在这里主要修改6处地方,section:一般默认为optional, maintainer:维护者信息,输入自己的email,build-depends:编译依赖,因为我们的是qt程序,所以一般列入qt的依赖,homepage:维护者的主页, depends:运行时依赖,也是qt相关, description:这个软件包的描述。2.修改debian/rules文件
这个过程中添加对于编译过程中的修改
<code>
#!/usr/bin/make -f
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
%:
dh $@
dh_override_auto_build:
qmake
make
</code>
添加dh_override_auto_build,重写编译过程。3.添加debian/helloworld.install文件
<code>
helloworld /usr/bin
</code>
定义可执行程序的安装目录,其他的安装文件也需要在这个文件里面定义4.修改debian/changelog文件
<code>
helloworld (1.0-1) unstable; urgency=low
* Initial release
-- crystal crystal@unknown Thu, 28 Apr 2016 16:55:47 +0800
</code>
这个文件是有初始格式的,按照格式进行修改就可以了,邮件地址其实是个人的gpg签名,可以通过<code>gpg --list-keys</code>命令查看,如果没有对应的gpg签名,则需要生成。做完这几步之后,就可以生成对应软件包了。
生成deb软件包
使用dpkg-buildpackpackge命令生成deb软件包
<code>dpkg-buildpackge</code>
<code>
crystal@crystal:~/workspace$ ls helloworld*
helloworld_1.0-1_amd64.changes helloworld_1.0-1.debian.tar.xz helloworld_1.0.orig.tar.xz
helloworld_1.0-1_amd64.deb helloworld_1.0-1.dsc
</code>
这样一个对应的软件包就生成了,你编译出来的软件就可以在其他机器上面进行发布了。