怎样将Qt上写好的程序移植到windows

怎样将Qt上写好的程序移植到windows,第1张

需要带上Qt的链接库

Windows和Linux的可执行文件不是一个格式, 当然不能直接Copy过去. Qt生成的是native code, 不像Java. Windows上需要安装Qt的开发环境, 然后编译出来. 最后整理, 打包, 发布, 就可以放到没有Qt开发环境的Windows上用了

qt程序动态打包步骤

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

需要的条件:

1.上位机编译好的可执行文件,以hello为例

在虚拟机的Ubuntu下,写好代码之后,定位到当前目录,执行命令

$ qmake -project //生成工程文件.pro

$ qmake //生成makefile

$ make//生成可执行文件hello

注意这些命令是在arm版的qt环境下的编译命令!执行qmake -v可查看其是否是arm版本,使用的是否是arm的库!执行file hello 可以查看hello是否是arm下运行的程序!

2.移植好QT库的开发板

刚开始学,只需要移植最基本的几个库就行了!触摸屏的、鼠标的、键盘的以后再说!分别是:libQtGui.so libQtCore.so libQtNetwork.so 以及fonts下的字库

为了防止错误,我一并把他们的相关链接文件so.4、 so.4.7、 so.4.7.2 都移植过去了!

移植方法你可以使用nfs !U盘!我用nfs速度太慢,非常不方便,索性用U盘拷过去了!因为这几个库小的不到1M,大的13M,U盘拷的还是很快的!比较让我费劲的是虚拟机不支持把链接文件拖拽到xp环境下!我只要在虚拟机里用邮件发到我的邮箱里,再在xp环境下把这些东西下下来,再通过U盘拷贝!曲折啊。。。我的虚拟机U盘不识别!

1)从哪儿移植呢?

从你虚拟机里编译安装arm版的QT库里面拷!..arm/lib下

2)移植过去放在哪儿呢?

最好是跟你在虚拟机里面的arm版QT所在目录一样,方便 *** 作!看我的

分别在开发板下新建目录:home/fengchao/qtenv/arm/lib

home/fengchao/qtenv/arm/bin

home/fengchao/qtenv/arm/lib/fonts

把那些.so文件放到lib里面,把字库放到fonts里面!

3.最重要的一步,设置环境变量!

在开发板的根目录下执行:

$ vi /etc/profile

然后输入

export QTDIR=/home/fengchao/qtenv/arm

export PATH=$QTDIR/bin:$PATH

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

保存退出! ok !

vi使用:打开文件之后,输入i,进入编辑模式,再按ESC退出编辑模式进入命令模式,输入:键入命令wq即保存退出,q退出

4.然后把你编译好的hello这个可执行文件放到你的开发板上,随便哪儿吧

然后执行

./hello -qws

然后你就可以看见开发板上有显示了!但是可能文字较小,如果有中文可能还是乱码,没事,咱一步步往下来。。。

5.错误分析

1)提示没有链接到字库

QFontDatabase: Cannot find font directory /home/fengchao/qtenv/arm/lib/fonts - is Qt installed correctly?

这个就是你没装好字库,好好检查一下,修改过来!

2)提示没有QtGui.so no such file of directory

也是因为你没有移植好这个库或者跟他链接的文件,再或者环境变量有误!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11528901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存