怎么建免费网站,在线 建站单页面网站带后台,百度seo推广怎么做,注册城乡规划师报考条件2022目录
前言
一、在Ubuntu18.04开发环境下打包有两种方式
1、利用linuxdeployqt软件进行打包
2、利用编写shell脚本的方式进行打包
二、详细介绍shell脚本打包的方式
1、新建一个空的文件夹
2、准备脚本copylib.sh
3、准备脚本xxxx.sh。
4、给上述两个脚本添加可执行权限…目录
前言
一、在Ubuntu18.04开发环境下打包有两种方式
1、利用linuxdeployqt软件进行打包
2、利用编写shell脚本的方式进行打包
二、详细介绍shell脚本打包的方式
1、新建一个空的文件夹
2、准备脚本copylib.sh
3、准备脚本xxxx.sh。
4、给上述两个脚本添加可执行权限
5、生成CardReaderTester文件
6、添加程序依赖库
7、添加Qt相关依赖库1将copylib.sh复制到Qt5安装目录的platforms文件夹当中。
8、软件运行切换到package文件夹下在当前文件夹下执行./CardReaderTester.sh即可运行软件。 前言
主要给Qt开发的程序打包将程序可以房子啊没有安装Qt开发环境的电脑运行。 一、在Ubuntu18.04开发环境下打包有两种方式
1、利用linuxdeployqt软件进行打包 但是网上说这种方法好像存在弊端并没有尝试故不做详细介绍。 弊端大概就是不过由于Ubuntu18.04操作系统版本太高在Ubuntu18.04上需要重新编译linuxdeployqt软件。重新编译的过程需要注释部分不兼容的源码。由于该方式经测试打包依旧无法运行。
2、利用编写shell脚本的方式进行打包 这种方法也在的问题有些依赖库并不能自动包含进来只能先用脚本打包再把缺失的库手动拉进来。 二、详细介绍shell脚本打包的方式
1、新建一个空的文件夹
用于存放程序和动态链接库。如“package”文件夹
2、准备脚本copylib.sh
#!/bin/bash
LibDir$PWD/lib
Target$1
lib_array($(ldd $Target | grep -o /.* | grep -o /.*/[^[:space:]]*))
$(mkdir $LibDir)
for Variable in ${lib_array[]}
docp $Variable $LibDir
done
3、准备脚本xxxx.sh。
xxxx.sh表示该脚本名称必须和程序名一致。如本项目的可执行文件为uidemo01命名该脚本为CardReaderTester.sh
#!/bin/sh
appnamebasename $0 | sed s,\.sh$,,
dirnamedirname $0
tmp${dirname#?}
if [ ${dirname%$tmp} ! / ]; then
dirname$PWD/$dirname
fi
VLC_PLUGIN$PWD/plugins
echo $VLC_PLUGIN
LD_LIBRARY_PATH$dirname
export VLC_PLUGIN_PATH$VLC_PLUGIN
echo $LD_LIBRARY_PATH
export LD_LIBRARY_PATH
$dirname/$appname $
注意复制粘贴这些脚本内容时候有可能会出现格式的问题但是提示什么错误再修改就好。
4、给上述两个脚本添加可执行权限
在shell里面执行如下两行命令 sudo chmod 777 copylib.sh sudo chmod 777 CardReaderTester.sh 5、生成CardReaderTester文件
将qt creator切换为release模式在编译文件夹下生成CardReaderTester文件。
6、添加程序依赖库
1首先将该文件复制到package文件夹下。 2在该文件夹下执行./copylib.sh CardReaderTester命令 ./copylib.sh CardReaderTester 3执行完后package目录中会生成lib文件夹 4将lib文件夹下面的库拷贝到package文件夹下面 5至此完成了添加程序依赖库的部分
7、添加Qt相关依赖库 1将copylib.sh复制到Qt5安装目录的platforms文件夹当中。 2在当前文件夹下执行./copylib.sh libqxcb.so命令。 ./copylib.sh libqxcb.so // 执行完这句指令也会多生成一个lib文件夹 3将lib目录下的库复制到package文件夹下部分库可能重复点击“替换”即可。
4接下来返回上一级将platforms整个文件夹拷贝到package文件夹下。此时的目录结构如下。 8、软件运行 切换到package文件夹下在当前文件夹下执行./CardReaderTester.sh即可运行软件。
注意要是运行不成功会显示缺少哪些库。 我的项目主要是QWebsoket以及QNetWork相关的库不能正确包含进来我又从qt的库中把对应的库拷贝过来才成功了。