赞
踩
qt项目在Linux平台上面发布成可执行程序.run_qt.run不是虚拟机的配置文件-CSDN博客
Linux下Qt程序的打包发布(1)-不使用第三方工具 - 知乎 (zhihu.com)
先将你的程序在release下编译通过,保证下面打包的程序是你最新的。
在bin/release下找到与你程序同名的。
将这个文件复制到你新建的文件夹里。
在第三步的文件下,新建文件pack.sh,内容如下
- #!/bin/sh
- exe="SeerScriptHttp" #你需要发布的程序名称
- des="/home/xmuli/Desktop/temp/qwer" #创建文件夹的位置
- deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
- cp $deplist $des
在第三步的文件下,再新建一个SeerScriptHttp.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 "$@"
我这里用了指定的appname:
- #!/bin/sh
- appname=SeerScriptHttp
- dirname=`dirname $0`
- tmp="${dirname#?}"
- if [ "${dirname%$tmp}" != "/" ]; then
- dirname=$PWD/$dirname
- fi
- LD_LIBRARY_PATH=$dirname
- export LD_LIBRARY_PATH
- $dirname/$appname "$@"
在第二步的文件终端里运行
- sudo chmod 777 pcak.sh //赋值权限
- sed -i 's/\r$//' pcak.sh //如果你是从window直接把.sh写好拖入ubuntu需要经过这一步,其他的不用执行这一步
-
- sudo chmod 777 SeerScriptHttp.sh //赋值权限
- sed -i 's/\r$//' SeerScriptHttp.sh
-
- ./pack.sh
会自动SeerScriptHttp.sh
讲所有依赖全部放入你指定的文件夹里
在你的新建文件夹目录下执行
./SeerScriptHttp
运行的时候遇到这样的错误
error while loading shared libraries: libQtHttpServer.so.1: cannot open shared object file: No such file or directory
解决方法:
先看一下libQtHttpServer.so.1这个文件是否存在
find . -name libQtHttpServer.so.1
文件存在
将这个文件从这个路径复制
cp ./scriptManager/SeerScriptHttp/bin/release/gcc_x64/libQtHttpServer.so.1 /usr/local/lib/
然后进入/etc/ld.so.conf修改如下
- vim /etc/ld.so.conf
-
- ###另起一行添加以下内容:
- /usr/local/lib/
-
- ###保存退出
- :wq
然后让资源修改生效
ldconfig
然后再运行./SeerScriptHttp
如果还有上述报错,就继续重复上面的操作(这里就不用再进入/etc/ld.so.conf修改了)直至没有类似报错。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。