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
即可