Qt+Ubuntu20.04:打包qt

打包程序

参考

qt项目在Linux平台上面发布成可执行程序.run_qt.run不是虚拟机的配置文件-CSDN博客

Linux下Qt程序的打包发布(1)-不使用第三方工具 - 知乎 (zhihu.com)

过程

1、Release编译

先将你的程序在release下编译通过,保证下面打包的程序是你最新的。

2、新建一个文件夹(作为你希望运行的文件目录)

3、找到SeerScriptHttp

在bin/release下找到与你程序同名的。

将这个文件复制到你新建的文件夹里。

4、新建文件pack.sh

在第三步的文件下,新建文件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

5、新建SeerScriptHttp.sh文件

在第三步的文件下,再新建一个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 "$@"

6、运行pack.sh

在第二步的文件终端里运行

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讲所有依赖全部放入你指定的文件夹里

7.运行

在你的新建文件夹目录下执行

./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修改了)直至没有类似报错。

相关推荐

  1. Qt打包

    2024-05-01 06:46:05       75 阅读
  2. ubuntu Qt打包

    2024-05-01 06:46:05       35 阅读
  3. Qt程序打包

    2024-05-01 06:46:05       30 阅读
  4. qt 程序 打包 批处理方式

    2024-05-01 06:46:05       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-01 06:46:05       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-01 06:46:05       97 阅读
  3. 在Django里面运行非项目文件

    2024-05-01 06:46:05       78 阅读
  4. Python语言-面向对象

    2024-05-01 06:46:05       88 阅读

热门阅读

  1. Ubuntu Linux完全入门视频教程

    2024-05-01 06:46:05       30 阅读
  2. 详解FastChat部署大模型API的实战教程

    2024-05-01 06:46:05       31 阅读
  3. macOS asdf 工具版本管理器

    2024-05-01 06:46:05       29 阅读
  4. 云计算知识点-03

    2024-05-01 06:46:05       31 阅读
  5. 将SSH密钥添加到GitHub账户

    2024-05-01 06:46:05       24 阅读
  6. -CS3342

    2024-05-01 06:46:05       36 阅读
  7. Spring Boot使用Logback将某些日志输出到单独的文件

    2024-05-01 06:46:05       35 阅读
  8. Kappa系数-评估分类算法的表现

    2024-05-01 06:46:05       27 阅读
  9. Spring boot 应用引入 Spring cloud alibaba nacos

    2024-05-01 06:46:05       33 阅读
  10. NLP Step by Step -- 如何微调一个模型(1)

    2024-05-01 06:46:05       31 阅读