在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
工程目录中就会出现一个新的.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
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"
在脚本编辑完成之后,需要给脚本添加执行权限
之后运行pack.sh脚本就可以自动将所需的库添加到这个文件夹中