ref: https://blog.csdn.net/weixin_42837024/article/details/81945656


平台    :Ubuntu 18.04
QT版本    :5.9.1 (open source)
g++     : 7.3.0
arm-gcc   :4.8.1

新建项目

  • 新建文件夹,作为项目根目录
  • 编写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

即可

转载于:https://www.cnblogs.com/schips/p/11089088.html

通过命令行新建qt项目,并编译打包相关推荐

  1. vue使用命令行构建完项目后_通过命令行创建vue项目的方法

    通过命令行创建vue项目的方法 最近想要学习vue,正好看到资料,如何通过命令创建vue项目的方法,就留个笔记 环境要求: 安装有 Node.js. vue.vue-cli . 创建项目: vue i ...

  2. Ubuntu 新建qt项目时出现 No valid kits found.

    Ubuntu 新建qt项目时出现 No valid kits found. 这是由于我们只安装了qtcreator而没有安装qt-sdk. 解决这个问题需要如下步骤: 如果需要需要qt-4和qt-5 ...

  3. # 命令行新建 job 错误: ORA-01008 并非所有变量都已绑定 。

    # 命令行新建 job 错误: ORA-01008 并非所有变量都已绑定 . 1.改正前代码: DECLARE job NUMBER; begin sys.dbms_job.submit(job =& ...

  4. vue使用命令行构建完项目后_vue-cli 构建项目在IE中无法运行解决方式(build之后可运行)...

    IE浏览器(只考虑IE11,更低版本我没考虑)运行时报 Promise未定义的错误 解决办法: 1. 安装babel-polyfill (1.)  npm install babel-polyfill ...

  5. 命令行选项“/source-charset”与预编译头不一致

    命令行选项"/source-charset"与预编译头不一致 解决方法:不使用预编译头:

  6. mysql 用户命令_MySQL命令行新建用户

    https://www.cnblogs.com/penciler/p/4813157.html MySQL命令行能否实现新建用户呢?答案无疑是肯定的.而且在使用使用MySQL命令行新建用户后,还可以为 ...

  7. 如何使用git命令行上传项目到github

    参考文献: 如何使用git命令行上传项目到github 感谢楼主分享!

  8. python命令行运行django项目, can‘t open file ‘manage.py‘ 问题解决

    python命令行运行django项目, can't open file 'manage.py' 问题解决 参考文章: (1)python命令行运行django项目, can't open file ...

  9. mysql命令创建用户_使用MySQL命令行新建用户并授予权限的方法

    MySQL命令行能否实现新建用户呢?答案无疑是肯定的.而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限. 首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的ro ...

最新文章

  1. NGUI 3.5教程(六)Font字体
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1088:分离整数的各个数
  3. 打印最少硬币的组合-dp+记录路径
  4. ASP.NET MVC5+EF6+EasyUI 后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】...
  5. shell中循环执行某个进程获取返回值,并循环执行直到函数出错
  6. android获取sd的大小,Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法...
  7. 我的第一个WM5程序
  8. 把Oracle数据库移植到Microsoft SQL Server 7.0
  9. 闲置的eSATA接口,会影响Windows 7的启动速度
  10. Excel批量复制公式、删除空白行
  11. DedeCMS顽固木马后门专杀工具V2.0实现方式研究
  12. 谷歌浏览器手势插件-双击关闭标签等多种国人手势
  13. MeshBaker插件 使用套路
  14. java 适配器模式详解_JAVA设计模式详解(五)----------适配器模式
  15. 手机芯片性能排名天梯图2022
  16. Git详解之服务部署
  17. Jetpack Compose 初体验(上),flutter人脸识别系统
  18. Javascript实现表单检验(如注册界面)
  19. 微信手机网页上传图片高效率压缩(Canvas+Base64)
  20. CacheCloud的入门运用与实战

热门文章

  1. 中国电子学会python等级考试一级
  2. 信息学奥赛一本通 提高篇 第5章 矩阵乘法
  3. Java工作笔记-生成及解析Json字符串
  4. Spring学习笔记-构造和Set方法注入Bean及集合和null值的注入
  5. Qt学习笔记-SQL的基本操作【创建、查询、添加、索引等】
  6. Qt工作笔记-SIGNAL之textChanged
  7. 程序功能:延时(定时)
  8. android toast居中显示_Android和iOS7的差异点!
  9. 计算机软考培训网校,计算机软考培训中心
  10. Django中的日期处理注意事项和自定义时间格式转换