当前位置: 代码迷 >> QT开发 >> 怎么使Qt发布的程序在非Qt环境的Linux下运行
  详细解决方案

怎么使Qt发布的程序在非Qt环境的Linux下运行

热度:139   发布时间:2016-04-25 03:14:29.0
如何使Qt发布的程序在非Qt环境的Linux下运行
最近开始在捣鼓树莓派,想用Qt做一个人机界面。
我自己电脑装的是CentOS系统,安装了QT5.3.1( The binary packages include Qt 5.3.1 libraries and Qt Creator 3.1.2),然后编写了一个简单的helloworld程序,想测试一下能否移植到其他未安装QT的Linux系统下。
树莓派上安装了Raspbian(基于Debian)系统,我将QT编译运行后自动生成的helloworld程序直接拷贝到树莓派中,将helloworld的权限改为可执行,然后双击它,无任何反应。

然后我去网上搜索了好多资料,发现了 http://blog.csdn.net/jia0511/article/details/8224716 动态编译法
按照他的方法,将libQtCore.so.4.6.2和libQtGui.so.4.6.2拷到程序文件夹中,还是不行,双击helloworld和helloworld.sh都没有任何反应。

我又用终端进入/usr/lib,然后输入
ln -s libQtGui.so.4.6.2 libQtGui.so.4
ln -s libQtCore.so.4.6.2 libQtCore.so.4
再双击helloworld.sh,依旧是没有任何反应!
QT程序的移植好复杂啊!求指导!谢谢!!!
------解决方案--------------------
要把依赖库全都打包才行,最原始的方法就是:一个一个一个一个……找出来。
也许有一些工具可以帮忙,比如 http://www.linuxdeepin.com/forum/topic?p=20891
比如 http://www.baidu.com/link?url=2FuptlSW8kmHp8c7N_PHp5knefQAC85kRfPLHkbBg4p8-JtHV_pQfpGongzErBV7uX_5gVXfUJ4OxCenSc4AiNRC1I3JphmNw8ObnU2hWaK7mQEGGVjCqaeD4VH2-f_qV3QeTw2ONIzJpfIPtrnVy8gzN9xYV7XZDZEjuFSqt4DioQSIF6BWJyCetsSDANsm
博文决赛,投我一票,谢谢。
------解决方案--------------------
引用:
Quote: 引用:

可能和系统有关。你可以访问我的博客 http://blog.csdn.net/foruok ,上面有一篇文章说怎样使用工具找出依赖库:使用objdump objcopy查看与修改符号表

恩,好的,谢谢,我试试看。
对了,我的PC是X86,树莓派是ARM的,是不是不能简单的把程序和库直接拷贝过来啊?


首先,你开始提到,你装的是Qt5.3,并用它编译的程序。但是你提到的,你拷贝的都是Qt4.6的库

其次,你的开发机 和 目标机 CPU不同,程序是不能直接拷贝的,你需要的是交叉编译

再次,树莓软件仓库中应该有现成的 Qt,你应该可以直接用,直接在里面进行程序编译。