标签:
我也是个小白,以前在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 好了,这个时候你能程序应该能起来了。 |
标签:
原文地址:http://blog.csdn.net/complicated19921001/article/details/51353309