当前位置: 首页 > news >正文

上位机图像处理和嵌入式模块部署(linux Qt程序的编译)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        linux上位机写程序,大家都喜欢用designer设计界面,用qt creator编写程序。这样其实也无可厚非。但是从效率和快速开发的角度来说,这么做其实是没有必要的。我们完全可以通过自己的方法来实现一个比较好的开发环境。今天,就来简单讨论下,如果是用于嵌入式linux qt界面开发,怎么开发和编译比较好。

1、传统的qt creator开发

        传统的方式,也是qt本身推荐的方式,那就是借助于qt creator来进行处理。本质上它就是一个IDE,既可以设计界面,也可以开发代码。但是从可用性和复用性来说,个人感觉价值不是很高。为了开发qt记住的那些技巧,在开发其他软件的时候完全派不上用场。

2、借助于命令行进行开发

        在嵌入式卡片电脑上面,如果准备好了qt的运行环境,其实是可以在widnows上面准备好文件之后,直接在卡片电脑上编译运行的。我们还知道,qt一般依赖于这么几个命令,

        (1)uic命令,它的作用就是把ui文件翻译成头文件;

        (2)moc命令,它的作用就是提取头文件里面的Q_OBJECT信息,翻译成cpp文件;

        (3)头文件目录和动态库文件。

        所以,知道了这些之后,我们其实就可以自己写一个批处理文件,也是可以实现正常编译的,文件不多的情况下,效率还特别地高,

uic QtWidgetsApplication.ui -o ui_QtWidgetsApplication.h
moc -o  moc_QtWidgetsApplication.cpp QtWidgetsApplication.h
g++ main.cpp QtWidgetsApplication.cpp  moc_QtWidgetsApplication.cpp -o main -I /usr/include/aarch64-linux-gnu/qt5 -I /usr/include/aarch64-linux-gnu/qt5/QtWidgets -I /usr/include/aarch64-linux-gnu/qt5/QtGui -I /usr/include/aarch64-linux-gnu/qt5/QtCore -lQt5Widgets -lQt5Gui -lQt5Core

3、编写Makefile编译

        qt creator创建工程的时候,其实有一个pro文件,这个文件就是用来创建编译脚本的。既然是这样,我们也可以自己创建Makefile进行编译。和批处理文件相比较,它可以实现增量编译,这样我们每次编译的时候,只需要编译那个修改过的文件就好了,整体编译的效率也会更高。

        这个Makefile只要写一次就好了,后面把它当成模板,改一改就可以使用了。

.PHONY: all cleanINCLUDE_DIR=-I /usr/include/aarch64-linux-gnu/qt5 \-I /usr/include/aarch64-linux-gnu/qt5/QtWidgets\-I /usr/include/aarch64-linux-gnu/qt5/QtGui \-I /usr/include/aarch64-linux-gnu/qt5/QtCoreall: mainmain: main.o QtWidgetsApplication.o moc_QtWidgetsApplication.og++ -g $^ -o main -lQt5Widgets -lQt5Gui -lQt5Coremain.o: main.cpp QtWidgetsApplication.hg++ -g -c main.cpp -o main.o $(INCLUDE_DIR)QtWidgetsApplication.o: QtWidgetsApplication.cpp QtWidgetsApplication.hg++ -g -c QtWidgetsApplication.cpp -o QtWidgetsApplication.o $(INCLUDE_DIR)QtWidgetsApplication.h:ui_QtWidgetsApplication.hui_QtWidgetsApplication.h: QtWidgetsApplication.uiuic $^ -o ui_QtWidgetsApplication.hmoc_QtWidgetsApplication.o : moc_QtWidgetsApplication.cppg++ -g -c moc_QtWidgetsApplication.cpp -o moc_QtWidgetsApplication.o $(INCLUDE_DIR)moc_QtWidgetsApplication.cpp : QtWidgetsApplication.hmoc -o moc_QtWidgetsApplication.cpp QtWidgetsApplication.hclean:rm -rf main *.o ui_*.h moc_*.cpp

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 艺术与科技的结合:推荐7款好用的AI绘图工具
  • Matplotlib 简介:Python 数据可视化的强大工具
  • 第八季完美童模全球偶像明星【Forrest lin】荣耀加冕 见证星芒风采!
  • 帆软报表,达梦数据库驱动上传失败
  • HCIA云计算实验-2-网络基础实验
  • Springboot 图片
  • vue3之仪表盘
  • 堆排序的插入和删除
  • 一文读懂推荐系统
  • vue3使用elementui-plus时使用深度选择器穿透影响原样式
  • keepalived详解
  • Spring Mybatis拦截器配合logback打印完整sql语句
  • 嵌入式AI快速入门课程-K510篇 (第七篇 系统BSP开发)
  • GO语言如何抗住火影忍者手游的高并发
  • 入门网络安全工程师要学习哪些内容
  • angular学习第一篇-----环境搭建
  • Docker 笔记(2):Dockerfile
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java的Interrupt与线程中断
  • java小心机(3)| 浅析finalize()
  • Python语法速览与机器学习开发环境搭建
  • React16时代,该用什么姿势写 React ?
  • text-decoration与color属性
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 判断客户端类型,Android,iOS,PC
  • 新书推荐|Windows黑客编程技术详解
  • puppet连载22:define用法
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • # 职场生活之道:善于团结
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #知识分享#笔记#学习方法
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Note)C++中的继承方式
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读30/100)Convolutional Pose Machines
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .gitignore文件---让git自动忽略指定文件
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 依赖注入的基本用发
  • .Net Core 中间件验签
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET面试题(二)
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @angular/cli项目构建--Dynamic.Form
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [AX]AX2012 SSRS报表Drill through action
  • [BJDCTF2020]The mystery of ip1
  • [C#学习笔记]LINQ
  • [CR]厚云填补_多云条件下土地覆盖分割的多模态多任务学习