linux下QT开发学习

   最近在linux下用QT搞串口开发,弄了好长时间老是出现运行一段时间就是死机了,开始以为是Linux版本低造成的我的采用的版本是2.26.27,网上查有串口黑洞的可能,于是就想把linux内核的版本给升级。我采用的开发板式SmartArm3250是周立功生产,顺便说一下周立功的售后的服务很是一般,刚接触板子遇到很多问题。以为这个板子公司在几年前就买了,当时提供的材料linux方面的都是很全。电话打过到技术支持想要一份人家说太大了不给传,让我找售后不过售后的态度到时蛮好的,给我传来一上午,结果速度太慢还是没有传过来,后来没有办法我花了30大洋在淘宝是买了份,钱一交20分钟就把材料给搞定了。

介绍一下对Smart3250 的研究,不知道为什么Smart3250要这么贵的价钱,提供可学习的资料也很少(仅限与Linuxwince的内容我没有关注)。参考linux的手册就能把linuxSmart3250跑起来。以前几乎没有搞过ARM linux嵌入式的界面开发,对QT有点了解,知道能在linux下做界面,搞嵌入式一直是在借的一块同事买的mini2440的核心板自己做的开发板上搞。这次要搞界面所以开始就想的在Qtopia上搞开发和研究。研究到最后发现厂商所提供的Qtopia其实一点也用不上。

简单介绍下QT技术以下都是个理解。

1.qt qte qtopia qtevery  qteqt早起提供的嵌入式开发平台, qtopia是利用QTE的技术开发实现的,其实利用在以linux为平台的移动终端上的,提供很多功能就像现在其他手机平台一样如 andriod wince 等,可以利用QTE编写的程序中放到qtopia的环境下来运行。对于普通嵌入式开发不需要在其上面,直接在LINUX上运行就可以了。Qt4.6版本以后就不分QTE只要用qtevery 就可以编译出X11 armlinux下运行平台。

2.Qt环境搭建

可以查考 http://bbs.ednchina.com/BLOG_ARTICLE_270788.HTM 这是以前4.5的版本按照上面搭建一边后能很好了解qt的运行环境。

3.QT环境开工具

     用QT提供qt-creator windows linux下都可以使用。在windows可以用.net开发工具开发,linux下可以用ECLIPSE开发,qt的网站上都提供相应的开发插件。

4.QTqmake 

Qmake 是生成.pro工程文件以及Makefile文件。在Makefilelinux非常重要也是一门学问,有了Makefile就能生成可执行文件了。 Qmake -v 来查看当前采用是哪个qt的链接库以及采用的是linux gcc 还是arm-linux-gcc。如果你编写的程序中应用到 xml sqllit 等,用Qmake -project Qmake make qt编译标准三板斧是编译通不过的,有两种方法可以解决。

第一修改MakeFile 以用xml为例:红色部分为添加

#############################################################################

# Makefile for building: xsnetgps

# Generated by qmake (2.01a) (Qt 4.6.3) on: Tue Mar 13 15:26:06 2012

# Project:  xsnetgps.pro

# Template: app

# Command: /host/mylinux/QT/qt-embedded-4.6.3-arm/bin/qmake -unix -o Makefile xsnetgps.pro

#############################################################################

####### Compiler, tools and options

CC            = arm-vfp-linux-gnu-gcc

CXX           = arm-vfp-linux-gnu-g++

DEFINES       = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED

CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)

CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)

INCPATH       = -I/host/mylinux/QT/qt-embedded-4.6.3-arm/mkspecs/qws/linux-arm-g++ -I. -I/host/mylinux/QT/qt-embedded-4.6.3-arm/include/QtCore -I/host/mylinux/QT/qt-embedded-4.6.3-arm/include/QtNetwork -I/host/mylinux/QT/qt-embedded-4.6.3-arm/include/QtGui -I/host/mylinux/QT/qt-embedded-4.6.3-arm/include/QtXml -I/host/mylinux/QT/qt-embedded-4.6.3-arm/include -I.  

I.

LINK          = arm-vfp-linux-gnu-g++

LFLAGS        = -Wl,-O1 -Wl,-rpath,/host/mylinux/QT/qt-embedded-4.6.3-arm/lib

LIBS          = $(SUBLIBS)  -L/host/mylinux/QT/qt-embedded-4.6.3-arm/lib -lQtXml -L/usr/local/tslib/lib -L/host/mylinux/QT/qt-embedded-4.6.3-arm/lib -lQtGui -lQtNetwork -lQtCore -lpthread 

第二是修改.pro

 TEMPLATE = app

TARGET = xsnetgps

QT += core \

    gui \

    xml 

HEADERS += linuxcom/posix_qextserialport.h \

    linuxcom/qextserialbase.h \

corfirm.h \

   5.qt学习

个人的学习经历,其实在几年前就了解过QT但都没有实际来做,没有做过之前总是云里雾里的很多东西没有搞明白,不管学习什么东西实践最重要,首先是对QT环境的搭建如果你是在搞Windows下的QT开发,下载一个安装包下一步下一步就完成。如果是搞linux下的嵌入式开发环境搭建,按这篇文章http://bbs.ednchina.com/BLOG_ARTICLE_270788.HTM搭建,虽然是QT4.5的版本,但是这个搭建以后对qt以后的版本搭建应该不会有问题了。而且对QT结构能有大体上的了解。

   6.具体的qt实际编程,先在windowsqt-creator简单做一个小程序,实战一下。看看qt提供的Demo对有个初步的了解再系统学习一下,建议看《C++ GUI Qt 4编程(第二版)》

而且这个书源码可以下载参考。  

有时间把如何把smartarm3250内核升级到linux2.6.39.2整理一下。

你可能感兴趣的:(linux下QT开发学习)