符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
qt程序动态打包步骤
柞水网站建设公司成都创新互联,柞水网站设计制作,有大型网站制作公司丰富经验。已为柞水1000多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的柞水做网站的公司定做!
1. 从可运行程序的文件中拿出可执行文件
2. 终端下使用ldd命令查看需要的连接库
例如 ldd + 可执行文件
3. 把ldd查询到的所有需要的库导出
4. 编写.sh文档(.sh文件命名必须与可执行文件名字一样例:可执行文件名 test, .sh 文件名为 test.sh)
.sh文件代码如下:
#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" !="/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname $*
5. 把所用到的库,可执行文件, .sh文件放到同一目录下
6. 终端中进入这一目录,输入:
chmod +x test.sh
7. 执行程序点击.sh文件或者终端输入:
./test.sh
写在依赖包列表里,有管理程序会自动下载安装的。不过要写明版本和候选源的名字。加上官方的运行库依赖……基本上所有的linux发行版都有qt4运行库的源。
至于怎么写,您百度一下吧……rpm或者dpkg都有控制命令和测试命令,反正安装的时候测试没有启动下载或者一起打包的库安装就好了。
用程序管理器是最容易的,会自动检查依赖并下载。比如yum和apt这种。
反正我写qt的时候在linux下从来不担心这问题,基本也没有问题
倒是windows需要自己打包带着走……毕竟windows下用qt的程序很少,装qt运行库的更少了
一、准备
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
构建一个新的根文件系统目录,路径为
/root/rootfs
二、具体步骤:
1、编译安装busybox
在官网下载最新版。可以参考如下几处要修改的地方:
Busybox Settings --- Build Options --- (arm-linux-)Cross Compiler prefix
Busybox Settings --- Installation Options ---[]Dont't use /usr
Busybox Settings --- Installation Options ---(/root/rootfs) BusyBox installation prefix
Busybox Settings ---Busybox Library Tuning ---[*] Fancy Shell prompts
输入如下命令,编译并安装。
# make;make install
2、编译安装tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。
注意:在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
# ln -s ../../usr/include ./
3、编译安装QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录
2)、编译
# make
# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录
4、根文件系统的设置
1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉module_raw input前的注释
# mv etc ../ 移动到rootfs的根目录
2)、进行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、编辑etc/profile,添加以下内容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。
在发布自己的程序时,很多时候都会因为一些依赖的dll文件不存在而报错,而我们新手却不知道应该如何添加,那么我们可以使用QT自带命令行来自动添加依赖文件。
命令行指令:windeployqt *.exe
首先,将你需要打包的exe文件单独放在一个文件夹中,然后打开QT自带的命令行,找到那个文件夹,之后就可以使用windeployqt加上exe文件来自动打包了,QT会自动帮你添加好全部的依赖文件,保证100%能运行,但是需要注意的是,由于这个100%的保证,他也许添加了很多无用的dll文件,这会使得我们自动打包出来的文件很臃肿,所有有经验的各位可以按需要自行删除不必要文件。