QT在linux上的发布,写给小白看的,老手略过
来源:互联网 发布:西溪悦榕庄 知乎 编辑:程序博客网 时间:2024/05/22 16:12
我也是个小白,以前在win上发布Qt程序感觉很easy,Release了之后,到目录下运行exe文件,提示缺什么dll就拷贝什么dll到目录下就好了。linux上大致相同,但是还是有些许的区别的。
1.linux上Release了之后,也是缺库 ,缺的是 .so 的库
2.linux上不会提示缺什么库,自己查
3.linux上不仅要库,还要对应库的 软链接
4.修改环境变量,让路径指向当前目录下,运行shell脚本,而不是可执行变量
以上四条你可能都不明白,但是照着下边的做就ok了
1.用 “ldd 可行路径” 看你的程序都缺啥库 (就找那个"not found")
1.1新建一个txt,把这些粘贴进去
ln -s libicudata.so.53.1 libicudata.so.53ln -s libicui18n.so.53.1 libicui18n.so.53
ln -s libicuuc.so.53.1 libicuuc.so.53
ln -s libQt5Core.so.5.4.1 libQt5Core.so.5
ln -s libQt5DBus.so.5.4.1 libQt5DBus.so.5
ln -s libQt5Gui.so.5.4.1 libQt5Gui.so.5
ln -s libQt5Widgets.so.5.4.1 libQt5Widgets.so.5
(PS:这些都是最基本的库,一般都会缺这些玩意,如果你的程序还用到其他的,照这个格式再写上去。)
1.2 然后后缀改成 .sh,在终端输入 sh ./XXX.sh就可以了 你会发现你的目录下多了很多带箭头的文件,每个库都对应有一个。
这其实就是建立的软链接
2.在建一个跟你工程同名的txt文档,把这段复制进去,换成你路径。 然后 同样后缀改成 .sh
2.1#--------------------------
env |grep LIB
export LD_LIBRARY_PATH=.
export QT_PLUGIN_PATH=你的路径/platforms
export LD_LIBRARY_PATH=你的路径/platformsLD_LIBRARY_PATH
#--------------------------
#!/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 $*
2.2 把platforms拷贝到你的工程目录下
2.3同样运行刚才这个.sh 好了,这个时候你能程序应该能起来了。
3.为了方便,我把“platforms” “第一sh(CreateSoftLink.sh)” "第二sh(你的工程名.sh)" 。“platforms” “第一sh(CreateSoftLink.sh)”直接用就好了。至于“你的工程名.sh”把汉字部分换成你的“工程名”“路径”就可以了
1.linux上Release了之后,也是缺库 ,缺的是 .so 的库
2.linux上不会提示缺什么库,自己查
3.linux上不仅要库,还要对应库的 软链接
4.修改环境变量,让路径指向当前目录下,运行shell脚本,而不是可执行变量
以上四条你可能都不明白,但是照着下边的做就ok了
1.用 “ldd 可行路径” 看你的程序都缺啥库 (就找那个"not found")
1.1新建一个txt,把这些粘贴进去
ln -s libicudata.so.53.1 libicudata.so.53ln -s libicui18n.so.53.1 libicui18n.so.53
ln -s libicuuc.so.53.1 libicuuc.so.53
ln -s libQt5Core.so.5.4.1 libQt5Core.so.5
ln -s libQt5DBus.so.5.4.1 libQt5DBus.so.5
ln -s libQt5Gui.so.5.4.1 libQt5Gui.so.5
ln -s libQt5Widgets.so.5.4.1 libQt5Widgets.so.5
(PS:这些都是最基本的库,一般都会缺这些玩意,如果你的程序还用到其他的,照这个格式再写上去。)
1.2 然后后缀改成 .sh,在终端输入 sh ./XXX.sh就可以了 你会发现你的目录下多了很多带箭头的文件,每个库都对应有一个。
这其实就是建立的软链接
2.在建一个跟你工程同名的txt文档,把这段复制进去,换成你路径。 然后 同样后缀改成 .sh
2.1#--------------------------
env |grep LIB
export LD_LIBRARY_PATH=.
export QT_PLUGIN_PATH=你的路径/platforms
export LD_LIBRARY_PATH=你的路径/platformsLD_LIBRARY_PATH
#--------------------------
#!/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 $*
2.2 把platforms拷贝到你的工程目录下
2.3同样运行刚才这个.sh 好了,这个时候你能程序应该能起来了。
3.为了方便,我把“platforms” “第一sh(CreateSoftLink.sh)” "第二sh(你的工程名.sh)" 。“platforms” “第一sh(CreateSoftLink.sh)”直接用就好了。至于“你的工程名.sh”把汉字部分换成你的“工程名”“路径”就可以了
0 0
- QT在linux上的发布,写给小白看的,老手略过
- QT在linux上的发布,写给小白看的,老手略过
- Qt 程序在linux下的发布
- 在Linux上发布qt程序
- Linux CP文件夹略过目录的解决
- Linux CP文件夹略过目录的解决
- 在linux上发布更新的项目
- qt quick 例子snake 在windows 上的发布。
- QT+QTOPIA在linux上的移植
- 在没有QT环境的windows机器上发布QT程序的方法
- DSP 老手的随感
- 大神略过,linux jre安装以及环境变量的配置
- QT在windows上发布
- 时光略过的2013~2014
- QT+QTOPIA在linux上的移植 转
- Qt/Embedded版本在linux上的安装
- Linux Qt+opencv2.3.1在tiny6410上的移植
- Qt在Linux和ARM上的环境搭建
- 解决GridLayout API level小于21时平均分配行列的问题
- HHU 暑假第二弹 数据结构初步
- 棋盘问题
- Ubuntu 14.04下Openface的环境搭建
- python中的编码 encode decode setdefautendcoding write print
- QT在linux上的发布,写给小白看的,老手略过
- RandomAccessFile用法
- 【嵌入式开发】Raspberry Pi 树莓派性能测试
- WPF 纯代码实现自定义快捷键
- 对象的比较==和equals()
- 练习场acm 题目55 懒省事的小明
- 鱼眼相机矫正原理
- Java Basic Operator
- 从网络上解析json小实例 分步骤参考