QT5的ARM移植及其中文显示
- 格式:docx
- 大小:1.42 MB
- 文档页数:17
1、下载rzsz-3.48.tar.gz2、解压tar zxvf rzsz-3.48.tar.gz解压后的文件夹为scr进入scrcd scr3、修改交叉编译器vi MakefileCC = arm-linux-gcc编译 make posix4、把生成的可执行文件拷贝到文件系统的usr/bin下即可rb rc rx rz sb sx sz zcommand zcommandi5、重新制作yaffs2文件下载到板子即可mkyaffs2image fs.yaffs2 root_fs.bin传输文件到板子如下操作:[root@Timo /mnt]# rzrz ready. Type "sz file ..." to your modem programStarting zmodem transfer. Press Ctrl+C to cancel. Transferring S-Boot.bin...100% 15 KB 7 KB/s 00:00:02 0 Errors 妑z 3.48 01-27-98 finished.**** UNREGISTERED COPY *****Please read the License Agreement in rz.doc[root@Timo /mnt]# lsS-Boot.binQQ:917603226,danpianjikaifa@学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发韦东山老师的视频下载地址2440/file/f9beed69b0#.avi QQ:917603226/file/f9690fdc25#第2课QQ:917603226_GPIO实验.avi QQ:917603226/file/f91dd8f3b7#第3课QQ:917603226_存储管理器实验.aviQQ:917603226/file/f926fbcd6#第4课QQ:917603226_MMU实验.aviQQ:917603226/file/f98ccea8a4#第5课QQ:917603226_NAND_FLASH控制器.aviQQ:917603226/file/f9d6474d48#第6课QQ:917603226_中断控制器.aviQQ:917603226/file/f9657f8c96#.aviQQ:917603226/file/t9aa118d81#/file/t9e1c4044e#.aviQQ:917603226/file/t963cbbde3#第9课QQ:917603226第2节_u-boot分析之Makefile结构分析.aviQQ:917603226/file/t9de4dd17f#第9课QQ:917603226第3节_u-boot分析之源码第1阶段.aviQQ:917603226/file/t922115ff9#第9课QQ:917603226第3节_u-boot分析之源码第2阶段.aviQQ:917603226/file/t9114550f1#第9课QQ:917603226第4节_u-boot分析之u-boot命令实现.aviQQ:917603226/file/t99a6e0f29#第9课QQ:917603226第5节_u-boot分析_uboot启动内核.aviQQ:917603226/file/t9820a106e#第10课QQ:917603226第1节_内核启动流程分析之编译体验.aviQQ:917603226/file/t96fa8dc6f#第10课QQ:917603226第2节_内核启动流程分析之配置.aviQQ:917603226/file/t9aa094b45#第10课QQ:917603226第3节_内核启动流程分析之Makefile.aviQQ:917603226/file/t9f4a7ca84#第10课QQ:917603226第4节_内核启动流程分析之内核启动.aviQQ:917603226/file/t9dee089e3#第11课QQ:917603226第1节_构建根文件系统之启动第1个程序.aviQQ:917603226/file/t9d5172739#第11课QQ:917603226第2节_构建根文件系统之init进程分析.aviQQ:917603226/file/t9e7c46b97#第11课QQ:917603226第3节_构建根文件系统之busybox.aviQQ:917603226第 1 页/file/t921e24b83#.aviQQ:917603226/file/f5136718a8#动程序之概念介绍.aviQQ:917603226/file/f57b7907fe#动程序之LED驱动程序_编写编译.aviQQ:917603226 /file/f520effad5#第12课QQ:917603226第2.2节_字符设备驱动程序之LED驱动程序_测试改进.aviQQ:917603226 /file/f52e270acc#第12课QQ:917603226第2.3节_字符设备驱动程序之LED驱动程序_操作LED.aviQQ:917603226 /file/f51a13dc93#第12课QQ:917603226第3节_字符设备驱动程序之查询方式的按键驱第 2 页QQ:917603226,danpianjikaifa@学习视频,电子元件选型指导,PLC 学习指导以及PLC 和DCS 周边产品开发TQ2440开发大全下载linux-2.6.35.3在TQ2440上移植1--建立自己的板子.pdf/source/3227941linux在TQ2440上移植2--Nandflash驱动,MTD分区.pdf/source/3227943linux在TQ2440上移植3--yaffs2+文件系统移植.pdf/source/3227944linux在TQ2440上移植4--yaffs2文件系统制作.pdf/source/3227947linux在TQ2440上移植5--移植串口传输协议.pdf/source/3227948linux在TQ2440上移植6--完善串口驱动.pdf/source/3227950linux在TQ2440上移植7--完善实时时钟RTC.pdf/source/3227951linux在TQ2440上移植8--启动看门狗+.pdf/source/3227965linux在TQ2440上移植9--添加触摸屏.pdf/source/3227952linux在TQ2440上移植10--完善网卡驱动.pdf/source/3227955linux在TQ2440上移植11--完善声卡驱动.pdf/source/3227956linux在TQ2440上移植12--完善SDMMC卡驱动.pdf/source/3227958bootloader编写指南.pdf/source/3227040第 1 页U-boot1.1.6的移植step by step(TQ2440).pdf/source/3227044U-boot1[1][1][1].1.6的移植(TQ2440).pdf/source/3227049/source/3227049U-BOOT-2010.06移植到TQ2440.pdf/source/3227052uboot讲义.pdf/source/3227054uboot阶段1(汇编部分)详细分析.pdf/source/3227057uboot使用说明.pdf/source/3227058Uboot学习笔记.pdf/source/3227060U-boot源代码分析.pdf/source/3227062Uboot源码阅读笔记.pdf/source/3227064在uboot上制作logo的实验.ppt/source/3227067UBOOT之Makefile详解.doc/source/3227068基于TQ2440和Qt的Mp3设计.doc/source/3227074ARM9硬件接口学习之一_WatchDog.pdf/source/3229021ARM9硬件接口学习之二_RTC.pdf/source/3229025.第 2 页ARM9硬件接口学习之三_GPIO.pdf/source/3229026ARM9硬件接口学习之四_CLOCK.pdf/source/3229028ARM9硬件接口学习之五_UART.pdf/source/3229030tq2440ARM学习1/source/3229044ARM学习3流水灯实验.pdf/source/3229048ARM学习4在ADS1.2中新建自己的工程.pdf/source/3229051ARM学习5实现电子相框功能及LCD屏显试验中两个问题/source/3229053ARM学习6LCD屏显实现科比投篮的动画.pdf/source/3229057ARM学习7对于科比投篮实验的轨迹分析.pdf/source/3229058ARM学习8对于画线函数Glib_Line算法的研究.pdf/source/3229059ARM学习14S3C2440 IO口的总结.pdf/source/3229060[原创]自己动手编写嵌入式Bootloader之(1).pdf/source/3230747[原创]自己动手编写嵌入式Bootloader之(2).pdf/source/3230136[原创]自己动手编写嵌入式Bootloader之(3).pdf/source/3230137uC_OS-II实验指导书.pdf第 3 页/source/3231958Ucos_II2.52 源码中文译注.pdf/source/3231960UCOS-II API 参考手册.pdf/source/3231962第 4 页TQ2440裸机开发试验大全TQ2440裸机开发试验之ADC/source/3311703TQ2440裸机开发试验之ebook/source/3311704TQ2440裸机开发试验之interrupt/source/3311708TQ2440裸机开发试验之Mmu_Nand/source/3311761TQ2440裸机开发试验之Mmu_Nand/source/3311763TQ2440裸机开发试验之Nand_1/source/3311765TQ2440裸机开发试验之power_stop/source/3311770TQ2440裸机开发试验之PWM/source/3311772TQ2440裸机开发试验之RTC_LCD/source/3311777TQ2440裸机开发试验之Touch_Panel/source/3311778TQ2440裸机开发试验之UART/source/3311780TQ2440裸机开发试验之write_bios/source/3311783第1篇基础篇第1章Linux简介1.1 Linux系统概述1.2 Linux图形界面操作1.3 Linux字符界面操作1.4 Shell脚本编程基础第1章Linux简介.pdf/source/3312215新手学linux C编程第1章视频/v_show/id_XMjcwMDAxNjYw.html 第2章C语言基础2.1 C语言概述2.2 数据类型、运算符和表达式2.3 基本语句2.4 数组2.5 预处理第2章C语言基础.pdf/source/3312221新手学linux C编程第2章配套源码,可成功运行.rar /source/3312253新手学linux C编程第2章视频/v_show/id_XMjcwMDAxODY0.html第3章指针、函数及自定义数据类型3.1 指针.3.2 函数3.3 结构体、共用体和枚举第3章指针、函数及自定义数据类型.pdf/source/3312229新手学linux C编程第3章配套源码,可成功运行.rar /source/3312254新手学linux C编程第3章视频/v_show/id_XMjcwMDAyMTAw.html第4章数据结构4.1 线性表4.2 栈4.3 队列4.4 二叉树4.5 查找4.6 排序第4章数据结构.pdf/source/3312230新手学linux C编程第4章配套源码,可成功运行.rar /source/3312255第5章文本编辑器5.1 vi编辑器的基本使用5.2 vi编辑器之程序编辑5.3 emacs编辑器的基本使用第5章文本编辑器.pdf/source/3312231新手学linux C编程第5章视频/v_show/id_XMjcwMDA0ODI4.html第6章GCC编译器6.1 GCC简介6.2 GCC的安装6.3 GCC常用选项第6章GCC编译器.pdf/source/3312234新手学linux C编程第6章配套源码,可成功运行.rar /source/3312256新手学linux C编程第6章视频/v_show/id_XMjcwMDA1OTA4.html第7章调试工具7.1 GDB简介及安装7.2 GDB常用命令7.3 GDB调试实例第7章调试工具.pdf/source/3312235新手学linux C编程第7章视频/v_show/id_XMjcwMDA2MDI0.html第9章LinuxC基本应用9.1 字符串操作9.2 数据转换9.3 内存分配与释放9.4 时间和日期9.5 其他应用第9章Linux C基本应用.pdf/source/3312239新手学linux C编程第9章视频/v_show/id_XMjcwMDA2Mjk2.html第10章文件系统缔程10.1 Linux文件系统简介10.2 文件的基本操作10.3 文件的属性10.4 目录文件的操作第10章文件系统编程.pdf/source/3312240新手学linux C编程第10章配套源码,可成功运行.rar /source/3312260新手学linux C编程第10章视频/v_show/id_XMjcwMDA2NDMy.html第11章标准输入输出11.1 标准输入输出的基本操作11.2 非格式化输入输出11.3 格式化输入输出第11章标准输入输出.pdf/source/3312242新手学linux C编程第11章配套源码,可成功运行.rar /source/3312261新手学linux C编程第11章视频/v_show/id_XMjcwMDA2NTYw.html第12章进程操作12.1 进程的概念12.2 Linux进程12.3 进程创建与控制12.4 守护进程第12章进程操作.pdf/source/3312246新手学linux C编程第12章配套源码,可成功运行.rar /source/3312263第13章进程间通信13.1 管道13.2 信号13.3 消息队列13.4 信号量13.5 共享内存第13章进程间通信.pdf/source/3312247新手学linux C编程第13章配套源码,可成功运行.rar /source/3312266新手学linux C编程第13章视频/v_show/id_XMjcwMDA3NDU2.html第14章多线程编程14.1 线程的基本概念14.2 线程的基本操作14.3 线程的同步第14章多线程编程.pdf/source/3312248新手学linux C编程第14章配套源码,可成功运行.rar /source/3312268新手学linux C编程第14章视频/v_show/id_XMjcwMDA3NTU2.html第15章网络编程15.1 网络基础知识15.2 套接字编程基础15.3 服务器模型15.4 域名系统第15章网络编程.pdf/source/3312249新手学linux C编程第15章配套源码,可成功运行.rar /source/3312269新手学linux C编程第15章视频/v_show/id_XMjcwMDA4ODky.html第16章Linux GUI编程16.1 GTK+/Gnome开发简介16.2 常用GTK+构件16.3 GUI生成器Glade第16章Linux GUI编程.pdf/source/3312250新手学linux C编程第16章配套源码,可成功运行.rar/source/3312270新手学linux C编程第16章视频/v_show/id_XMjcwMDA5MTAw.html第17章案例1:Linux命令实现17.1 功能与参数介绍17.2 主函数代码分析17.3 其他函数代码分析第17章案例1:Linux命令实现.pdf/source/3312251新手学linux C编程第17章配套源码,可成功运行.rar /source/3312271新手学linux C编程第17章视频/v_show/id_XMjcwMDA5MjI4.html第18章案例2:客户端/服务器端程序18.1 服务器端程序设计18.2 客户端程序设计第18章案例2:客户端.pdf/source/3312252新手学linux C编程第18章配套源码,可成功运行.rar /source/3312273新手学linux C编程第18章视频/v_show/id_XMjcwMDA5Mzc2.htmlallegro使用经验大全allegro16[1].3版之建立板框(很精彩的图文解释).pdf/source/3313999allogro布线及检查规则设置.pdf/source/3314028allegro中怎么样画原形的板框!.pdf/source/3314027Allegro中如何导入DXF文件.pdf/source/3314024Allegro中丝印及文字的调整管理技巧.pdf/source/3314025allegro怎么样复制板框到另外一块中.pdf/source/3314022Allegro修改元件封装管脚序号.pdf/source/3314020allegro导出dxf文件的方法与步骤.pdf/source/3314018allegro板框设置方法.pdf/source/3314015Allegro 电源,地层分割方法.pdf/source/3314011allegro 导入DXF时/source/3314009allegro allegro使用汇总.pdf/source/3314001怎样在ALLEGRO PCB中修改Net及添加Net.pdf/source/3314037在用ALLEGRO自作PCB时出现过过孔上焊盘而不报错的现象.pdf /source/3314034如何在allegro中更换元件封装.pdf/source/3314032如何看到pin number,并修改它.pdf/source/3314030Cadence中的allegro软件的sub-drawing的用法.pdf/source/3314029allogro布线及检查规则设置.pdf/source/3314028第 1 页做C++的朋友过来看看了啊WINDOWS核心编程.rar/source/3314308vs2008中文教程.rar/source/3314303Visual C++技术内幕第5版.rar/source/3314299MFC深入浅出.rar/source/3314291C++高级参考手册/source/3314289C++Primer第四版中文版(电子版).rar/source/3314286C#完全手册.pdf/source/3314282第 1 页(VB精彩应用之实例001)仿瑞星小狮子界面.rar/source/3321477(VB精彩应用之实例002)控制其他程序成为自己的子窗体.rar/source/3321478(VB精彩应用之实例003)在任务栏上加上程序图标.rar/source/3321479(VB精彩应用之实例004)获取运行程序(控件)名称和内容.rar/source/3321481(VB精彩应用之实例005)锁住Windows直到输入正确的口令.rar/source/3321483(VB精彩应用之实例006)禁止创建快捷方式出现“快捷方式”四个字.rar /source/3321484(VB精彩应用之实例007)更改墙纸显示方式.rar/source/3321486(VB精彩应用之实例008)在任务栏中禁用右键快捷菜单.rar/source/3321488(VB精彩应用之实例009)判断桌面大小.rar/source/3321492(VB精彩应用之实例010)改变Windows图标大小.rar/source/3321495(VB精彩应用之实例011)修改桌面图标背景.rar/source/3321496(VB精彩应用之实例012)动态卷帘式窗体演示.rar/source/3321498(VB精彩应用之实例013)自动更换墙纸.rar/source/3321499(VB精彩应用之实例014)设置窗口在屏幕中的位置.rar/source/3321501(VB精彩应用之实例015)设置窗口置前、置后.rar/source/3321502VB精彩应用之实例016)闪烁窗体标题栏.rar/source/3321504VB精彩应用之实例017)智能窗体放大器.rar/source/3321505(VB精彩应用之实例019)椭圆形窗体.rar/source/3321509(VB精彩应用之实例020)透明窗体.rar/source/3321510(VB精彩应用之实例021)透明窗体动画.rar/source/3321512(VB精彩应用之实例022)动态半透明窗体.rar/source/3321513(VB精彩应用之实例023)关于窗体.rar/source/3321514(VB精彩应用之实例024)MDI窗体.rar/source/3321515(VB精彩应用之实例025)背景渐变的窗体.rar第 1 页/source/3321516(VB精彩应用之实例026)窗体动态形状转换.rar/source/3321517(VB精彩应用之实例027)关闭窗口前提示.rar/source/3321518(实例028)窗体文字效果.rar/source/3321520VB精彩应用之实例029)鼠标右键弹出菜单.rar/source/3321521(VB精彩应用之实例030)带图标的菜单.rar/source/3321522(VB精彩应用之实例032)屏蔽关闭、最大化、最小化按钮.rar /source/3321524(VB精彩应用之实例033)显示多列菜单.rar/source/3321525(VB精彩应用之实例034)List列表拒绝添加重复信息.rar/source/3321527(VB精彩应用之实例035)控件大小随窗体的改变而改变.rar /source/3321530VB精彩应用之实例036)在TextBox中设置新的系统功能菜单.rar /source/3321531(VB精彩应用之实例037)动态改变控件尺寸.rar/source/3321532(VB精彩应用之实例038)程序运行时智能增减控件.rar/source/3321533第 2 页。
cmake qt5_create_translation詳細用法使用cmake qt5_create_translation命令的详细用法cmake是一种跨平台的构建工具,用于管理和构建C++项目。
它支持多种构建系统,包括Makefile和Ninja。
Qt是一个流行的C++应用程序开发框架,提供了丰富的功能和工具来简化程序开发过程。
其中一个有用的功能是国际化(i18n),它允许我们将应用程序本地化为不同的语言。
在Qt中,我们可以使用qt5_create_translation命令来从源代码和翻译文件中生成QM文件。
QM文件是Qt翻译后的文件,它包含了所有已翻译的文本字符串。
通过生成QM文件,我们可以轻松地在Qt应用程序中实现多语言支持。
在本文中,我将向您展示如何使用cmake qt5_create_translation命令的详细用法,以便您能够在自己的项目中实现多语言支持。
准备工作在开始之前,我们首先需要安装好cmake和Qt以及相应的开发包。
确保您在系统上安装了正确的版本,并且路径已正确配置。
步骤一:创建源代码和翻译文件首先,我们需要为我们的应用程序准备好一些源代码和翻译文件。
假设我们的应用程序有两个文本字符串需要翻译:Hello和Goodbye。
我们首先创建一个源文件,名为main.cpp,其中包含我们的源代码:cpp#include <QCoreApplication>#include <QDebug>int main(int argc, char *argv[]){QCoreApplication a(argc, argv);qDebug() << QObject::tr("Hello");qDebug() << QObject::tr("Goodbye");return a.exec();}接下来,我们创建一个翻译文件,名为translations.qm,并使用Qt的Linguist 工具将Hello和Goodbye翻译为其他语言。
Qt编程中的中文显示问题我刚开始学习Qt+KDevelop编程,先照Qt的指南作了个Hello World,接着试着修改QLabel("你好",...);结果出来的是乱码。
我的KDE能够正确显示中文,那么错误在哪里呢?这主要是因为文字编码的问题,qt显示用的是Unicode,而我们输入的中文一般都是gbk的,直接显示自然就是乱码了。
因此,我们需要进行编码的转换。
Qt提供了一个类专门解决这类问题,叫做QTex tCodec。
我们可以这样使用:这样转换了之后,使用string这个QString就可以正常显示了!同时,这个方法对输入的中文字符的处理一样有效。
建议你把Qt文档的关于i18n和QTextCodec类的部分好好看看,其实,那上面已经说的很明白的。
/* File: i18n.cpp */#include <iostream.h>#include <qapplication.h>#include <qtranslator.h> //信息翻译载入#include <qlabel.h>#include <qpushbutton.h>#include <qlayout.h>#include <qmultilineedit.h>#include <qmenubar.h>#include <qpopupmenu.h>class ExampleWidget : public QWidget{public:ExampleWidget( QWidget *parent = 0, const char *name = 0 );~ExampleWidget();private:};ExampleWidget::ExampleWidget( QWidget *parent, const char *name ): QWidget( parent, name ){//垂直布局QBoxLayout *topLayout = new QVBoxLayout( this, 5 );//建立菜单条QMenuBar *menubar = new QMenuBar( this );menubar->setSeparator( QMenuBar::InWindowsStyle );QPopupMenu* popup;popup = new QPopupMenu( this );popup->insertItem( tr("&Quit"), qApp, SLOT(quit()) );menubar->insertItem( tr("&File"), popup );//添加菜单条topLayout->setMenuBar( menubar );//建立水平的容器, 并添加到垂直容器中QBoxLayout *buttons = new QHBoxLayout( topLayout);int i;for ( i = 1; i <= 4; i++ ) {//建立按钮QPushButton* but = new QPushButton( this );QString s = tr("Button %1").arg(i);but->setText( s );//在水平容器上添加按钮buttons->addWidget( but, 10 );}//建立多行文本区QMultiLineEdit *bigWidget = new QMultiLineEdit( this );bigWidget->setText( tr("This widget will get all the remaining space") );bigWidget->setFrameStyle( QFrame::Panel | QFrame::Plain );//添加文本区到垂直容器中topLayout->addWidget( bigWidget);//建立标签QLabel* sb = new QLabel( this );sb->setText(tr("Let's pretend this is a status bar"));sb->setFrameStyle( QFrame::Panel | QFrame::Sunken );sb->setFixedHeight( sb->sizeHint().height() );sb->setAlignment( AlignVCenter | AlignLeft );//添加标签topLayout->addWidget( sb );//激活布局topLayout->activate();}ExampleWidget::~ExampleWidget(){ }int main( int argc, char **argv ){QApplication a( argc, argv );if(argc < 2) {cout << "Usage: ./i18n -[gb|big5]\n";exit(1);}//设置字体, 使中文程序尽量使用点阵字体.a.setFont(QFont("Times", 16, QFont::Normal));//建立Translator, 用于载入信息文件QTranslator *translator = new QTranslator(0);if(!strcmp(argv[1], "-gb")){//载入当前目录下的文件translator->load("i18n_gb.qm", ".");} else if(!strcmp(argv[1], "-big5")){//载入当前目录下的文件translator->load("i18n_big5.qm", ".");}a.installTranslator(translator);ExampleWidget f;a.setMainWidget(&f);f.show();return a.exec();}关于qt支持中文、国际化qt对国际化有很好的支持。
移植QT5.6到嵌⼊式开发板(史上最详细的QT移植教程)⽬前⽹上的⼤多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更⽼的 Qtopia ,但是⽬前 Qt 已经发展到最新的 5.7 版本了,我个⼈也已经使⽤了很长⼀段时间的 qt5.6 for windows ,本⽂就来介绍⼀下QT在嵌⼊式环境的搭建。
移植以到 JZ2440 为例,使⽤韦⽼⼤提供的 ubuntu9.10 虚拟机作为移植环境。
当然,其它虚拟机也是可以的,我同样在 ubuntu14.04 移植成功,只不过需要额外装⼀些库,后⾯我会简单提及。
此外,我尝试使⽤ 4.3.2 版本的交叉编译⼯具编译 Qt5.6 ,编译过成功很多错误,编译成功之后使⽤ qt 编译应⽤程序时也存在问题,因此我是⽤的是友善提供的 4.4.3 版本的交叉编译⼯具。
建议新⼿使⽤与我相同的编译环境。
因为我们更换了编译⼯具,因此,我们有接下来的4个⼯作。
1、重新编译内核2、制作⽂件系统3、移植tslib4、移植qt⼀、更换交叉编译器⾸先,将下载好的⽂件全部放在 /work ⽬录下1、解压交叉编译器sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C / #展开在根⽬录ls /opt/FriendlyARM/toolschain/4.4.3/bin #检查是否⽣成了编译⽬录2、设置环境变量sudo vi /etc/environment将现在原有的交叉编译器路径替换为我们新解压的交叉编译器,举例:1. #PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"//注释2. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin" //增加后期测试时我发现这⾥是有问题的,由于我的安装⽬录都指定的是 usr ⽬录,需要 root 权限,然⽽在 environment 中设置的环境变量导致使⽤ root 权限 make install 过程中出现了个别的 command not found ,于是我将环境变量放到了 /etc/profile 中,这个⽂件是对所有⽤户⽣效的。
Qt5.9.1qmake中⽂⼿册Qt5.9.1 qmake中⽂⼿册来源:/qm843230255/article/details/77584969qmake ⼿册qmake⼯具有助于简化跨平台项⽬的开发.它⾃动⽣成Makefiles,只需要很少的信息就可以创建Makefiles。
⽆论是Qt项⽬或者是其他软件项⽬,都可以使⽤qmake。
qmake通过项⽬⽂件(.pro)⾥提供的信息⾃动⽣成Makefiles.项⽬⽂件(.pro)由开发者创建,通常项⽬⽂件(.pro)都很简单,⼤型复杂的项⽬也可以通过项⽬⽂件(.pro)创建。
qmake包含的附加功能⽀持Qt跨平台开发,qmake可以为和⾃动⽣成编译规则。
qmake可以在⽆需修改项⽬⽂件(.pro)的情况下⾃动⽣成Microsoft Visual studio项⽬。
⽬录⼤纲预览qmake⼯具提供了⼀个管理应⽤程序,库和其他组件的⾯向项⽬的系统。
可以使你控制项⽬⾥的所有源⽂件,并简明描述了构建过程中每⼀步的信息。
qmake扩展了每个项⽬中在编译和连接中运⾏必要命令的Makefile⽂件中的信息。
描述项⽬Qt项⽬通过项⽬⽂件(.pro)⽂件内容来描述这个项⽬。
qmake利⽤项⽬⽂件(.pro)中的信息⽣成Makefiles,Makefiles包含了编译项⽬所需的所有命令。
项⽬⽂件(.pro)通常包含源⽂件和头⽂件的列表,通⽤的配置信息和特定应⽤程序细节, 例如外部库链接列表,或者外部头⽂件包含⽬录列表等。
项⽬⽂件(.pro)可以包含许多不同类型的元素,包括注释,变量声明,内置函数和⼀些简单的控制结构。
⼀些最简单的项⽬中, 只需声明⽤于构建基本的配置选项的源⽂件和头⽂件。
更多关于如何创建⼀个简单的项⽬⽂件,请参考。
你可以为更复杂的项⽬创建复杂的项⽬⽂件(.pro)。
预览项⽬⽂件,参见。
关于项⽬⽂件(.pro)中使⽤变量和函数的详细信息,请看.你可以使⽤⼀个应⽤程序或者库的项⽬模板,通过指定专门的配置来调整构建过程。
[转]qt-4.7交叉编译-mikit的专栏-CSDN博客[转]qt-4.7交叉编译收藏一:环境介绍虚拟机:vmware 7.0Linux 环境:ubuntu 9.04交叉编译环境:arm-linux-g++ 3.4.5硬件平台:TQ2440二:移植步骤安装交叉编译环境由于这里使用的是QT2440管盘中提供的交叉编译工具链EABI-4.3.3_EmbedSky_20100610.tar.bz2,放在/opt/目录下解压主要是在解压后可以看到其中含有两个版本,由于qt4.7.0的编译必须使用3.4.5版本所以在设置交叉编译的路径的时候使用的是在/etc/profile中加入exportPATH=/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH安装tslib1.41. 下载tslib1.4,解压2. 进入解压的目录运行执行./autogen.sh3. 执行./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ,经过一段时间的编译4. 执行make install5. 修改/opt/tslib/etc/ts.conf,把第二行的#号去掉(这样做的主要目的是为了在移植到板子上的时候,可以制定输入模块)6. 在/etc/profile中加入export PATH=/opt/tslib:$PATHPS:经过我的测试,我无法用以上的方法编译tslib1.4,我用的是另外一种方法:1、 ./autogen.sh #用于生成configure脚本2、 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache#产生一个cache文件arm-linux.cache,欺骗configure,3、 CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/tslib --cache-file=arm-linux.cache4、 make5、 make install交叉成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹编译qt4.7.0-arm1. 下载qt-everwhere-opensource-4.7.0,并解压最好重命名qt-everwhere-opensource-4.7.0-qte2. 开始进行配置选项./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg -no-libmng -no-libtiff -no-multimedia -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I /opt/tslib/include -L /opt/tslib/lib -confirm-license "$@"3. 开始进行交叉编译gmake 此过程要经历很长的一段时间4. 在交叉编译成功后运行gmake install安装,这里会默认安装到/usr/local/Trolltech/QtEmbedded-4.7.0-arm5. 这个时候qte的编译就成功了制作根文件系统(移植到开发板)1.移植tslib,将ubuntu中的/opt/tslib 拷贝到根文件系统中的/opt/下面2.移植qte4.7.0将/usr/local/Trolltech/QtEmbedded-4.7.0-arm下面的lib文件夹拷贝到根文件中的相同目录下(必需得先创建相应的目录)注:此时可以根据需要裁剪lib 中的内容去掉不用的.so文件3. 增加新的显示中文的字体wenquanyi 放到上面的/lib/fonts目录下。
mingw编译Qt5正式版[亲测可用]mingw编译Qt5正式版[亲测可用]2012-12-21 05:08:58分类:C/C++每一段文字都是经过这5天以来辛苦测试得来的经验总结,如需转载,请注明出处建议所用软件均按以下版本,编译过程中不会出现fail,QtCreator可以使用官方版,慎用ShadowBuildMinGW tdm-gcc-4.7.1-2.exe(mingw32,里面的各种工具较新)PerlActivePerl-5.16.1.1601-MSWin32-x86-296175.msiICUicu4c-49_1_2-src(需要自行编译)Pythonpython-2.7.0.msi(编译webkit时,3.3会出错)Ruby rubyinstaller-1.9.3-p327.exe(编译webkit时需要)Qtqt-everywhere-opensource-src-5.0.0.tar.gzQtCreatorqt-creator-2.6.1-src.zip-------------------------------------------------------------------------------------------------------Qt5配置编译安装从控制台进入新的QT安装目录设置环境变量setPATH=%PATH%;D:/icu/bin;D:/icu/lib;D:/Python33;D:/Perl/ bin;D:/MinGW32/bin;D:/Ruby/binsetINCLUDE=%INCLUDE%;D:/icu/includesetLIB=%LIB%;D:/icu/lib配置命令configure-prefix %CD%\qtbase -opensource -debug-and-release-nomake tests -nomake examples -opengl desktop-no-vcproj -no-iwmmxt -no-cetest如果要进行静态编译请加上-static--prefix 参数,指定软件安装目录编译命令mingw32-make -i -k 2>err.log说明:-i 忽略错误-k 某些目标不能达成时仍然继续进行2>err.log 将发生的错误输出到当前目录的err.log文件中在进行最后一步之前查看err.log,只要错误不影响正常使用就可以进行最后一步,否则需要进行错误排除,排除之后再次运行上面这个命令安装mingw32-make install后期工作要正常使用Qt还需要在系统或者编译工具中设置环境变量PATHD:/icu/bin;D:/icu/libmingw的一些可能用到的参数-jN 多任务进行-------------------------------------------------------------------------Qt Creator配置编译安装(需要qmake)准备:QtCreator源码路径:D:/Qt/qt-creator-2.6.1-srcQtCreator编译目录:D:/Qt/qt-creator-2.6.1QtCreator安装目录:D:/Qt/qt-creator 配置环境变量setPATH=%PATH%;D:/icu/bin;D:/icu/lib;D:/Python;D:/Perl/bin ;D:/MinGW32/bin;D:/Ruby/binsetpath=%path%;d:/qt/5.0.0/qtbase/binsetINCLUDE=%INCLUDE%;D:/icu/include;D:/qt/5.0.0/qtbase/ includeset LIB=%LIB%;D:/icu/lib;D:/qt/5.0.0/qtbase/lib将源码包解压到源码目录,新建编译目录,从控制台进入编译目录,设置好Qt环境变量。
Qt移植学习之路 QT4.5.3至mini2440(1)本文介绍的是Qt移植学习之路QT4.5.3至mini2440,终于成功移植QT 4.5.3至mini2440,并能运行QT自带的应用程序,总得来说还算很顺利,下面是我移植的全部过程。
首先,我交待一下我的开发环境:宿主机:Fedora9主机Gcc:gcc 版本 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC)交叉编译器:arm-linux-gcc-4.3.2 (友善光盘自带)开发板:mini2440(NAND 128M SDRAM 64M)移植步骤:1.准备源码包从ftp:///qt/source/ 下载:qt-embedded-linux-opensource-src-4.5.3.tar.gz和qt-x11-opensource-src-4.5.3.tar.gz前者是移植到开发板上运行的,后者是方便在X86机上开发应用程序,待一切调试成功再经交叉编译后下载到开发板上运行。
从网上下载tslib-1.4.tar.gz包,这包用于管理触摸屏,例如可用于它来校正触摸屏,并保存校正数据。
2.编译安装tslib-1.4把tslib-1.4 COPY到Fedora9的 /opt下,在Fedora9的终端下执行:1.#cd/tmp2.#tarzxvftslib-1.4.tar.gz――――――――(最后在/tmp下解压生成tslib)3.#cdtslib4.#./autogen.sh5.#./configure--prefix=/home/mytslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes6.#make7.#makeinstall成功后可在/home下生成mytslib,进入mytslib可以看到有bin include lib etc 四个文件夹。
我们暂时先不理它,在接下来的移植过程中才用到这些文件夹。
1.1QT5的移植1.1.1Qwt6的配置1.1.1.1Win7平台的qwt插件安装qwt源码下载:/projects/qwt/因为官方的qt creator是用msvc编译的,不能识别mingw编译的qwt,所以需要将qt creator 的源码用mingw编译一次。
Qt creator(msvc2013版) + vs2013 + qwt的配置编译qwt库我用的qt5.4-msvc版本直接打开qwt的pro工程,编译全部,生成lib和dll文件配置(1)将qwtd.dll、qwt.dll拷贝到H:\Qt\Qt5.4.0\5.4\msvc2013_64_opengl\bin下,将qwtd.lib、qwt.lib拷贝H:\Qt\Qt5.4.0\5.4\msvc2013_64_opengl\lib下(以qt安装目录H:\Qt\Qt5.4.0\5.4\msvc2013_64_opengl为例)。
(2)将qwt_designer_plugin.dll和qwt_designer_plugin.lib拷贝到H:\Qt\Qt5.4.0\5.4\msvc2013_64_opengl\plugins\designer目录下。
(3)将qwt\src目录下的所有.h和.cpp放入一个空文件夹QWT中,再将该文件夹拷贝到H:\Qt\Qt5.4.0\5.4\msvc2013_64_opengl\include目录下。
使用新建项目,然后进行配置:(1)属性->配置属性->C/C++->常规,附加包含目录:$(QTDIR)\include\QWT(2)属性->配置属性->链接器->输入,附加依赖项:qwtd.lib(3)属性->配置属性->C/C++->预处理器,预处理器定义:QWT_DLL1.1.1.2Ubuntu平台的qwt插件安装GCC的qmake建立gcc版本的qmake软链接将gcc-qmake放到/usr/bin下面就可以使用gcc-qmake了。
为了和ARM版本的qmake区别!删除链接那么我就可以在ubuntu下面编译qwt了。
因为我用qt-creator打开qwt.pro后,builder 后不知道在哪里生成了哪些东西。
进入qwt-6.1.2目录只好用qmake手动编译了。
#gcc-qmake#make#make install就会在/usr/local下面生成安装qwt插件到ubuntu的qt-creatro中去一定要注意下面的这个路径:Qt5.5.0/Tools/QtCreator折腾了半天,就是掉了这个路径还有另外的一个路径:下面的暂时不要这么做,因为不晓得在qt-creator如何应用头文件,还是先直接引用/usr/local/qwt-6.1.2/lib + include 吧另外拷贝/usr/local/qwt-6.1.2/lib下面的4个库到相应的目录新建1个Qwt的目录,拷贝头文件到里面Qwt的交叉编译我的qt库交叉版本没有使能opengl选项,所以qmake, make出现错误!找不到opengl模块配置qwt,重要的配置文件qwtconfig.pri修改qwtconfig.pri, 里面可以设置install的路径,去除需要注释如下的编译选项,编译arm qt时,没有支持opengl。
#QWT_CONFIG += QwtOpenGL第二,需要注释如下的编译选项:#QWT_CONFIG += QwtDesigner同时修改安装路径为:避免和gcc版本的混淆当然需要安装到开发板上面,才能运行。
1.1.1.3Qwt的使用INCLUDEPATH += /usr/local/qwt-6.1.2/includeLIBS += -L"/usr/local/qwt-6.1.2/lib/" –lqwt看下面:在Qt Creator的tool菜单中选择Form Editor-》About Qt Designer plugins查看是否安装了libqwt_designer_plugin.so1.1.2Qt5.5的ubuntu12.04安装#apt-get install libssl0.9.81.1.2.1ibus安装步骤第一步:安装语言包进入“System Settings”,找到“Language Support” 那一项,点击进入选择“Install/Remove Languages”,找到“Chinese (simplified)” 那一项,把后面到勾打上然后点击“Apply Changes”等待一段时间即可第二步:安装Ibus 框架调出terminal 终端,输入命令: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4启动Ibus 框架,在终端下输入命令:im-switch -s ibusPS:安装完Ibus 框架之后,记得重启或者注销系统,要保证更改生效才行哦第三步:安装拼音引擎有很多拼音引擎可供选择,一般安装一种就够了,比如我就直接安装的第一种Ibus 拼音:sudo apt-get install ibus-pinyinIbus 五笔:sudo apt-get install ibus-table-wubiGoogle 拼音:sudo apt-get install ibus-googlepinyinSun 拼音:sudo apt-get install ibus-sunpinyin第四步:设置Ibus 框架在 terminal 中输入命令:ibus-setup执行之后,会自动调出一个Ibus Preference 设置框,选择上面的“Input Method”选择相应的中文输入方式,然后点击“Add”注意:最好是安装什么输入法就Add 什么输入法这里还可以设置调出相应输入法到快捷键,默认的是“Ctrl+Space”好了,中文输入法已经安装完毕最后推荐一个非常好用到截图工具:KSnapshot他能让人非常随意的截图,还能设置延迟时间,用了才知道他到底有多方便安装方法:调出terminal 输入:sudo apt-get install ksnapshot 并执行,等待一段时间后便可1.1.2.2中文输入法配置#locale –a查看是否有:zh_CN.utf8/etc/profile环境变量的设置,注意是ibus系统的ibus设置位置需要支持utf-8中文环境[没有试过]设置中文环境很简单,需要三步。
第一步,安装中文包:sudo apt-get install language-pack-zh language-pack-zh-base 第二步,配置相关环境变量:sudo vim /etc/environment在文件中增加语言和编码的设置:LANG=”zh_CN.UTF-8″LANGUAGE=”zh_CN:zh:en_US:en”第三步,重新设置本地配置:sudo dpkg-reconfigure locales1.1.2.3UI界面不更新问题Ubuntu12的gnome主题安装#apt-get install gnome-shell ,本用它解决qt-creator的ui不更新问题,结果没有作用。
解决linux下的ui界面不更新的方法:项目设置文件.pro内增加 UI_DIR=./UI,同时删除掉源代码目录中ui_*.h,clearall,->qmake->rebuilt all总结:导致ui_*.h文件没有更新的原因是源代码中#include ui_*.h的位置和实际生成的位置不同,引用的是老的ui_*.h,设置UI_DIR后就规定了位置于是不会出错了。
确实如此:操作一次后,以后就立即生效了。
新建工程的时候,会生成一个单独的build-test***目录是没有UI目录的,通过修改.pro,指定UI的头文件路径,它以后就老老实实的呆在那里了!而之前的错误是:Build-xxx目录下面有ui_xxx.h文件,test_my源目录下面也有ui_xxx.h文件。
导致修改ui 后的ui_xxx.h文件无法引用到工程中!所以一直导致ui不变化!源码目录:Build-xxx目录:2者不同步!通过强行制定UI_DIR来解决!1.1.3Qt5.5的交叉编译1.1.3.1ARM平台交叉编译Qt的版本:qt5.5,交叉工具链版本:总结:①解压源码,配置交叉工具链编译的东西在qtbase目录下,在mkspecs下面复制linux-arm-gnueabi-g++全部为Linux-arm-qt5-notslib②修改qmake.conf-mthumb -march=armv7-aQt5的配置和Qt4的有太多的不一样。
③配置选项这里../qt55-notslib 换成绝对路径,不然它会在当前目录下生成qt55-notslib目录或者改成./_install目录注意:./configure命令运行完成后,它会提示“make”,”make install”命令,但是在它之前会打印很多Error,说什么找不到头文件,找不到sql等等。
不管他,那些头文件,解压源码后根本没有!在这里浪费了很多的时间。
①编译makemake install就会在-prefix指定的目录下生成②虚拟机上设置qmake – arm的环境这样就可以交叉编译qt工程了。
拷贝qt-arm库到开发板的rootfs文件系统,主要是这3个文件设置开发板的qt环境变量将它写成脚本, # . ./qt-board.sh 在开机启动的时候加入,就可以了!注意鼠标,键盘的变量和对应的设备节点内核默认是打开HID设备驱动的,如果找不到输入设备,看内核是否打开usb的HID支持!如何确定设备节点?插入无线鼠标、键盘到usb口,console检测到后,会打印信息出来。
这个时候就可以看到。
确定是哪个?一般会出现2个,有1个是正确的。
#cat /dev/input/event1 移动鼠标/按下键盘,有反应,打印乱码的就是它了!和Qt4不同的是,Qt5对键盘的设置是环境变量指定就行了,而Qt4还要在./configure中加入键盘,鼠标的选项来支持!问题又来了:默认Qt5的显示是看不到鼠标的?暂时打开:嵌入式linux的相关设置http://doc.qt.io/qt-5/embedded-linux.html#configuring-for-a-specific-deviceQT_QPA_PLATFORM=linuxfb:fb=/dev/fb1 specifies that the framebufferdevice /dev/fb1size=<width>x<height> -Parameters like the device node name can be set in the environmentvariables QT_QPA_EVDEV_MOUSE_PARAMETERS, QT_QPA_EVDEV_KEYBO ARD_PARAMETERS and QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS. Additionally, the built-in input handlers can be disabled bysetting QT_QPA_EGLFS_DISABLE_INPUT or QT_QPA_FB_DISABLE_INPUT to 1屏幕旋转On some touch screens the coordinates will need to be rotated. This can be enabled by setting QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to rotate=180.QT_QPA_FB_HIDECURSOR (for linuxfb) 关闭鼠标export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=180"export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0,size=480x2721.1.3.2x86平台的交叉编译#输入qvfb,提示要安装包#apt-get insall 就可以了。