QT Windows移植到Ubuntu


首先需要在Ubuntu系统中安装和windows相同版本的QT

安装完成之后检查qmake是否可用。

输入qmake -v

如果qmake可用,会提示以下信息

QMake version 3.1
Using Qt version 5.12.4 in /opt/Qt5.12.4/5.12.4/gcc_64/lib

如果不可用,在终端输入

sudo apt-get install qt5-default

在QT安装完成且环境配置正确,qmake可用之后,就可以开始移植Windows程序到Ubuntu

首先把vs的工程拷贝到ubuntu里面(可以用虚拟机的共享文件夹功能),把工程里面的目录Debug、GeneratedFiles、Release、Win32、x64和文件...user、...sln、...vcxproj、......filters删掉。这里根据vs版本的不同删除的文件和目录也可能不同。只要保留.h、.cpp、.qrc(没有这个文件编译出来的Qt项目会显示不了图片)、.ui文件和Resources目录就可以了。
然后进入到工程目录,及.h  .cpp .qrc文件所在的文件夹中。

输入

qmake -project QT+=widgets

原本Window下 QT += 后面的东西都可以加上,例如 network   core gui printsupport等等

再输入

 

qmake

最后输入

make

工程目录中就会出现一个新的.pro文件,此时,就可以用QtCreater打开这个工程文件了。

 

Linux系统下 QT程序的发布

首先和windows下发布程序一样,先release,然后到release文件夹下将可执行程序复制到目标文件夹中。

例如我release出一个test的文件,然后我将test文件复制到桌面一个叫test的新建文件夹中

然后新建pack.sh   和 test.sh 两个脚本文件

pack.sh主要用于将相应的库添加到该文件夹中,其内容如下

#!/bin/sh  
exe="test" #你需要发布的程序名称
des="/home/lcc/Desktop/test" #创建文件夹的位置
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

test.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 "$@"

在脚本编辑完成之后,需要给脚本添加执行权限

之后运行pack.sh脚本就可以自动将所需的库添加到这个文件夹中


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM