ref: https://blog.csdn.net/weixin_42837024/article/details/81945656
新建項目
- 新建文件夾,作為項目根目錄
- 編寫main.cpp
main.cpp
#include<QApplication> #include<QWidget> int main(int argc,char ** argv) { QApplication app(argc,argv); QWidget* pWidget = new QWidget(); pWidget->show(); return app.exec(); }

- 進入到相應的 文件夾下 輸入
qmake -project
會發現文件夾下生成了平台無關的項目文件一個XXX.pro文件(前面和文件夾名字一樣)qmake -project
- 下一步輸入
qmake XXX.pro
你要輸入對應的pro文件qmake XXX.pro
- 生成一些 makefile 文件 和 debug 和 release 文件夾(因為手寫Makefile是比較困難並且容易出錯的,尤其是需要給不同的平台和編譯器組合寫幾個Makefile。使用qmake,開發者創建一個簡單的“項目”文件並且運行qmake生成適當的Makefile。qmake會注意所有的編譯器和平台的依賴性,可以把開發者解放出來只關心他們的代碼)
編譯
如果使用的是開源版的Qt,用make;如果是商業版的Qt,用nmake
- 所以我輸入
make
,會 報錯 不要着急
因為我們用到了QWidget 所以要在pro文件里加入 QT += widgets
然后繼續重復上一步
- 重新make
- make
效果如圖
打包
不同平台下的打包方式還不太一樣。但是原理是類似的,都是將 應用文件依賴的有關庫放到同級目錄下
- Windows
- 輸入命令 windeployqt XXX.exe
- 可以再使用 Enigma Virtual Box 將文件都打包在一起
- Linux
1.將編譯后生成的可執行程序(如:test)復制到一個空目錄下
2.使用ldd命令查看和導出需要的庫
在步驟1的目錄下新建一個pack.sh文件,文件內容如下:
# pack.sh # SCHIPS # schips@dingtalk.com # https://gitee.com/schips/ # Wed 26 Jun 2019 10:38:11 AM HKT ## #!/bin/zsh #你需要發布的程序名稱 bin="test_project" # 輸出路徑 des="./" deplist=$(ldd $bin | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des
即可