首先需要在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腳本就可以自動將所需的庫添加到這個文件夾中