当前位置: 首页 > 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


http://www.mrgr.cn/news/7409.html

相关文章:

  • 【算法】粒子群优化
  • HarmonyOS应用开发者基础认证
  • python脚本:输入基因名,通过爬虫的方式获取染色体上的location。
  • 英伟达H20核心价值和高效运用揭秘
  • 微知-lspci如何查看pcie设备树状结构(-t)
  • el-image的配套使用(表格,表单)
  • 【PyTorch】深度学习PyTorch加载数据
  • react 路由创建与使用
  • docker应用
  • 软件测试——自动化测试selenium常用函数
  • 关于python的Django项目性能优化
  • 【开源社区】Elasticsearch(ES)中 exists 查询空值字段的坑
  • CSS3多行多栏布局
  • 计算机网络——HTTP与HTTPS协议
  • Frog4Shell — FritzFrog 僵尸网络将一日攻击纳入其武器库
  • 深度学习/机器学习软件教学平台
  • 记录一次经历:使用flask_sqlalchemy集成flask造成循环导入问题
  • python-docx 实现 Word 办公自动化
  • 如何使用 Python创建一个视频文件管理器并实现视频截图功能
  • Fiddle抓手机app的包