当前位置:文档之家› mingw编译Qt5正式版[亲测可用]

mingw编译Qt5正式版[亲测可用]

mingw编译Qt5正式版[亲测可用]
mingw编译Qt5正式版[亲测可用]

mingw编译Qt5正式版[亲测可用]

mingw编译Qt5正式版[亲测可用]

2012-12-21 05:08:58分类:C/C++

每一段文字都是经过这5天以来辛苦测试得来的经验总结,如需转载,请注明出处建议所用软件均按以下版本,编译过程中不会出现fail,QtCreator可以使用官方版,慎用ShadowBuild

MinGW tdm-gcc-4.7.1-2.exe(mingw32,里面的各种工具较新)Perl

ActivePerl-5.16.1.1601-MSWin32-x86-296175.msiICU

icu4c-49_1_2-src(需要自行编译)Python

python-2.7.0.msi(编译webkit时,3.3会出错)Ruby rubyinstaller-1.9.3-p327.exe(编译webkit时需要)

Qt

qt-everywhere-opensource-src-5.0.0.tar.gzQtCreator

qt-creator-2.6.1-src.zip

-------------------------------------------------------------------------------------------------------Qt5配置编译安装

从控制台进入新的QT安装目录

设置环境变量

set

PATH=%PATH%;D:/icu/bin;D:/icu/lib;D:/Python33;D:/Perl/ bin;D:/MinGW32/bin;D:/Ruby/binset

INCLUDE=%INCLUDE%;D:/icu/includeset

LIB=%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还需要在系统或者编译工具中设置环境变量PATH

D:/icu/bin;D:/icu/lib

mingw的一些可能用到的参数-jN 多任务进行

-------------------------------------------------------------------------Qt Creator配置编译安装(需要qmake)

准备:QtCreator源码路径:

D:/Qt/qt-creator-2.6.1-srcQtCreator编译目录:

D:/Qt/qt-creator-2.6.1QtCreator安装目录:D:/Qt/qt-creator 配置环境变量

set

PATH=%PATH%;D:/icu/bin;D:/icu/lib;D:/Python;D:/Perl/bin ;D:/MinGW32/bin;D:/Ruby/binset

path=%path%;d:/qt/5.0.0/qtbase/binset

INCLUDE=%INCLUDE%;D:/icu/include;D:/qt/5.0.0/qtbase/ includeset LIB=%LIB%;D:/icu/lib;D:/qt/5.0.0/qtbase/lib

将源码包解压到源码目录,新建编译目录,从控制台进入编译目录,设置好Qt环境变量。

生成makefileqmake "QT_PRIVATE_HEADERS=

D:/Qt/5.0.0/qtbase/include"

D:/Qt/qt-creator-2.6.1-src/qtcreator.pro编译

mingw32-make -i -k 2>err.log打开err.log查看错误,如果不是致命错误则进行下一步

这是其中一个可能发生的错误,原因是Qt5中这个模块declarative已经升级Project ERROR: Unknown module(s) in QT: declarative安装mingw32-make install安装完毕后,

删除掉编译目录里面的src即可(删不删都不影响使用,但是src很大)QtCreator仍在编译过程中。。。。。。。。。。。。

-----------------------------------------------------------------------------

----------------------没有configure.exe的解决方法【已测有效】来源https://www.doczj.com/doc/5011174164.html,/topics/380072935注释掉

qtbase\configure.bat中的一行文字将if not

exist %QTSRC%\.gitignore goto sconf前面加上::注释掉

就是修改为::if not exist %QTSRC%\.gitignore goto sconf回到安装目录运行配置命令

-----------------------------------------------------------------------------

----------------------

必须注意的bug

在编译过程中,链接QtWebKitWidgetsd5.dll (位于QtWebKit中)的时候可能会出现:undefined reference to JSC::JSCell::classInfo() const.这是个致命错误,会导致无法编译无法继续进行

解决方法:

Alright, I was able to fix this locally by merging the content of JSDestructibleObject.h (which defines

JSCell::classInfo()) into

JSObject.h .-------------------------------------------------------the

input line is too long/输入行太长解决方法尽量缩短qt5所在路径,使用TCC LE 13.0代替cmd.exe可以解决问题的一半,另一半需要自己动手写批处理,批处理尽量分几次写,因为批处理大小似乎也有限制。

我是在编译到Qt5WebKitWidgets的时候遇到这个问题的,批处理如下,需要根据实际情况更改文件中的路径,

Qt5WebKitWidgets为release部分,Qt5WebKitWidgetsd 为debug部分。Qt5WebKitWidgets.rar

---------------------------------------------------------------------------------------------------编译icu【需要msys】【转自官方

https://www.doczj.com/doc/5011174164.html,/wiki/Compiling-ICU-with-MinGW】

使用MinGW编译ICUQt 5 / QtWebkit 需要ICU, which MinGW distributions do not ship.预编译包

The ICU 项目官方网站[https://www.doczj.com/doc/5011174164.html,] 为32和64位系统都提供了预编译库下载。但都只是MSVC2010运行环境下的。按自己的需要进行编译MSYS

https://www.doczj.com/doc/5011174164.html,/projects/mingw/files/MSYS/Base/ms ys-core/msys-1.0.11/MSYS-1.0.11.exe/download?use_mir ror=garr.MinGW, 或者MinGW-w64 工具链如何编译下载ICU4C 源码包:https://www.doczj.com/doc/5011174164.html,/download (e.g. icu4c-49_1_2-src.zip), unzipICU 5.0 有bug,因此建议使用4.9如果使用MinGW-w64, 需要下载补丁:

https://www.doczj.com/doc/5011174164.html,/trac/changeset/31770/icu/trunk/ source/tools/toolutil/pkg_genc.c?format=diff&new=31 770打开msys,进入icu源码包路径$ cd icu/source设置mingw路径,如$ export

PATH=/c/Mingw-builds-32/bin:$PATH【这一步,mingw的路径要按实际的改动】为MinGW-w64打上补丁:$ patch -Np3

-i ../changeset_icu_trunk_source_tools_toolutil_pkg_genc.c _31770.diff运行configure &&

build:$ ./runConfigureICU MinGW --prefix=$PWD/../dist最后, run make && make install$ make

&& make install使用将bin, include, lib路径添加到编译环境的环境变量中,比如在cmd.exe下:C:\> set PATH=%PATH%;C:\icu\dist\bin;C:\icu\dist\libC:\> set INCLUDE=%INCLUDE%;C:\icu\dist\includeC:\> set

LIB=%LIB%;C:\icu\dist\lib此时运行Qt的configure.exe,ICU 便能够被检测到,and Qt links against the libraries.关于ICU4C 5.0的bug

gcc 4.7.2/MinGW环境下,ICU4C 有个bug会导致编译失败:

https://www.doczj.com/doc/5011174164.html,/trac/ticket/9728---------------------------------------------------------------------------------------------------

====================折腾过程

================================【以下为个人记录,仅作备忘】12月19日digia发布了QT5正式版,遗憾的是没有发现mingw版本,得自己动手。下载源码

qt-everywhere-opensource-src-5.0.0.tar.gz进行各种常规

配置,包括安装perl,phony尝试configure -h 竟然发现没有configure.exe倒是在qtbase中找到了源码,限于水平有限,暂时编译不出来然后经过各种折腾,发现把4.8.3的configure.exe拷贝到base下面可以运行,

++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++ 尽管经过各种修改,通过了configure的阶段(具体过程在此不表),但是在进行mingw32-make的时候会出现找不到qmodule.pri的情况,打开mkspace文件夹,发现只生成了qconfig.pri,看来想用老版本的configure.exe蒙混过关是行不通的,但是以上努力并没有白费,首先是生成了许多应有的文件,什么include,/qtbase/bin下面也有了qmake.exe。经过继续折腾,得到了5.0.0版本的configure.exe,过程如下

----------------------------------------------------------------------------------------------将4.8.3的configure.exe复制到5.0.0的qtbase下面将修改过的private文件夹复制

到%QTDIR%\qtbase\include\QtCore目录将修改过的

qlibraryinfo.cpp 复制到\qtbase\src\corelib\global覆盖原文

件(修改方法附在后面)

从控制台进入QT5.0.0安装目录set QTDIR=%CD%Set path=%path%;D:\Perl\bin;D:\Python33;D:\mingw\bin;

4.8.3需要指定平台,若使用参数方式-platform配置完毕后,会提示%QTDIR%\qtbase\tools\configure\下面缺少

qmake.conf,故使用环境变量方式set

QMAKESPEC=D:\Qt\5.0.0\qtbase\mkspecs\win32-g++

配置命令configure -prefix %CD%\qtbase -opensource

-fast重新运行配置命令运行结束后,进

入%QTDIR%\qtbase\bin\应该已经生成了qmake.exe

删除%QTDIR%\qtbase\configure.exe

将%QTDIR%\qtbase\bin\加入到pathSet

path=%path%;%QTDIR%\qtbase\bin\;从控制台进

入%QTDIR%\qtbase\tools\configure\

qmake出现D:/5.0.0/qtbase/.qmake.conf:1: Cannot find feature qt_build_configProject ERROR: Cannot load qmodule.pri!

打开\qtbase\qmake.conf去掉

load(qt_build_config)qmakemingw32-make install

运行完毕之后会在\qtbase\下面生成新的configure.exe备份这个configure.exe configure.rar 将整个qt5.0.0目录删除,

重新解压源码包,将configure.exe拷贝到qtbase中,运行configure进行配置

---------------------------------------------------------------------------------------------------使用4.8.3版本的configure.exe配置5.0.0之前所需修改的文件:1、private文件夹:以4.8.3目录下的configure.exe对5.0.0进行配置的过程中会提示找不到private/XXXXX.h解决方法如下:进

入%QTDIR%\qtbase\include\QtCore\5.0.0\QtCore\private 会发现很多头文件,打开任意一个头文件都只有一行现在要做的是

把../../../../../src/3rdparty/harfbuzz/src/harfbuzz-gpos-privat e.h"改

为../../../src/3rdparty/harfbuzz/src/harfbuzz-gpos-private.h"一共有一百多个,建议使用批处理,修改完毕后备份,待用private.rar (会进行库文件路径设置的可以通过设置include路径达到相同效果,但是我进行了各种设置,始终没有成功)

2、qlibraryinfo.cpp使用使用4.8.3版本的configure.exe配置5.0.0时还会出现另一个错误提示

D:\Qt\5.0.0\qtbase\src\corelib\global\qlibraryinfo.cpp中找不到qt_configure_prefix_path_strs定义

而同目录下的qconfig.cpp对这个变量进行了定义,static

const char qt_configure_prefix_path_str [512 + 12] = "qt_prfxpath=D:\\Qt\\5.0.0\\qtbase";前者比后者多一个s,不知道是不是写错了,qconfig.cpp 是自动生成的,所以只能在提示出错的cpp文件中进行修改

打开D:\Qt\5.0.0\qtbase\src\corelib\global\qlibraryinfo.cpp

所有qt_configure_prefix_path_strs改为

qt_configure_prefix_path_str

qt_configure_prefix_path_str[loc] + 12;改为

qt_configure_prefix_path_str+loc + 12;因为从上下文来看,需要的是一个char* 的指针修改完毕后备份待用qlibraryinfo.rar

++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++一些问题配置时如果不加-fast似乎会有点小问题

编译过程中出现乱码:删除mingw/share/locale目录下的中文语言文件mingw32-make 时出现unrecognized command line option \"-fno-keep-inline-dllexport\" 表示mingw版本太低

提示Cannot find feature qt_build_config解决方法:set QMAKEFEATURES=D:\Qt\5.0.0\qtbase\mkspecs\features 编译到webkit可能会出现process_begin: CreateProcess(null,ruby XXXXXX) failed. make (e=234)

安装ruby并将其加入到path中可解决问题,但是发生问题的源头据说是mingw版本太低(准确说是其中gcc版本太低)

qtcretor交叉编译设置

QTcreator交叉编译配置 在QTcreator项目中进行qt版本的选择找到qt/bin下的qmake 添加工具链gcce,并找到交叉编译链gcc的路径 添加系统的变量: PATH="/root/CodeSourcery/Xilinx_GNU_Linux/bin:${PATH}" export PATH export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export ZYNQ_QT_INSTALL=/zynq/qt/qt-lib/lib export ZYNQ_CV_INSTALL=/zynq/opencv/opencv-lib/lib 修改工程中的配置文件: 更改INCLUDEPATH += /zynq/opencv/opencv-lib/include LIBS += -L /zynq/opencv/opencv-lib/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_legacy \ -lz -ljpeg -lpng15 -ltiff -lavcodec -lavformat -lavutil -lswscale -lopencv_flann -lopencv_features2d \ -lopencv_calib3d -lopencv_video -lopencv_ml -lx264 开发板挂载sd卡mount /dev/mmc/block0p1,并将运行库复制到/zynq目录 指定开发板上程序运行库路径

zynq> export LD_LIBRARY_PATH=/zynq/opencv/opencv-lib/lib 执行程序./cvMoveDetect -qws 也可以在qtcreator的工程配置文件中指定运行库路径LIBS += -Wl,-rpath,/zynq/opencv/opencv-lib/lib

Qt技术文档

Qt技术 QT Creator是跨平台的QT IDE,是一款新的轻量级集成开发环境。它的设计目标是使开发人员能够利用QT这个应用程序框架更加速及轻易的完成开发任务。QT Creator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具、集成了QT Designer、QT Assistant、QT Linguist、图形化的GDB调试前端,集成Qmake构建工具等。 framebuffer是一种能够提取图形的硬件设备,是用户进入图形界面的很好接口。framebuffer是显存抽象后的一种设备,它允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。有了framebuffer,用户的应用程序不需要对底层的驱动深入了解就能够做出很好的图形。对于用户而言,它和/dev下面的其他设备没有什么区别,用户可以把framebuffer看成一块内存,既可以向这块内存中写人数据,也可以从这块内存中读取数据。显示器将根据相应指定内存块的数据来显示对应的图形界面。 1.1 Qt显示界面的设计与实现 1.1.1 开机界面的设计 为了美化整个软件环境,我们将制作一个开机自动启动的画面,3秒后自动进入主窗口界面。如开机界面显示图如图1-1所示,设计框图如图1-2所示。 开机界面背景图片实现代码如下: QSplashScreen *splash=new QSplashScreen; //启动画面 splash->setPixmap(QPixmap(":/image/开机界面_副本.png")); splash->show(); float t = 0; do { t = ((float)clock()) / CLOCKS_PER_SEC; QCoreApplication::processEvents(); }while( t < 3 );

交叉编译qt 4.7.0 加入dbus选项的错误

交叉编译qt 4.7.0 加入dbus选项的错误 D-Bus auto-detection... () arm-linux-g++ -c -pipe -O2 -Wall -W -I../../../mkspecs/qws/linux-arm-g++ -I. -I/usr/local/lib/tslib-arm/include -I/opt/openssl/include -I/opt/dbus130/include/dbus-1.0 -I/opt/dbus130/lib/dbus-1.0/include -o dbus.o dbus.cpp arm-linux-g++ -Wl,-O1 -Wl,-rpath,/opt/qte4.7.0/build/lib -o dbus dbus.o -L/usr/local/lib/tslib-arm/lib -L/opt/openssl/lib -L/opt/dbus1224/lib dbus.o: In function `main': dbus.cpp:(.text+0x8): undefined reference to `dbus_shutdown' collect2: ld returned 1 exit status make: *** [dbus] 错误1 D-Bus disabled. The QtDBus module cannot be enabled because libdbus-1 version 0.93 was not found. Turn on verbose messaging (-v) to ./configure to see the final report. If you believe this message is in error you may use the

Qt移植说明文件

一般而言,Qt应用程序的内容可分为Qt库的编译,Qt库的移植和基于Qt的应用程序的移植。Qt库的编译所花费的耗线性时间代价是最长的,而Qt库的移植是比较简单的一个工作,只需要让串口发送数据到开发板上即可,笔者本人使用的是虚拟机提供的一个共享工具 wmwate-tools,在拷贝某些库的时候会出现不可以预知的错误,重试也无法解决这个问题,解决办法在于把库目录打包共享,这样的出错几率会比较低。最后,应用程序的移植,这部分所花费的非线性时间应该是最长的,在移植调试的过程中将会出现很多很多未能预知的问题,详细的解答将会在本文末尾出做详细笔录。 1.编译的环境和所需要资源: Qt源码包:Qt4.6源码包:qt-everywhere-opensource-src-4.6.3.tar.gz https://www.doczj.com/doc/5011174164.html,/qt/source/qt-everywhere-opensourc e-src-4.6.3.tar.gz 交叉编译工具: arm-linux-gcc 4.1.2 arm920t-eabi.tar.gz 触摸屏校验工具: tslib1.4 PC虚拟机运行的OS :CentOS-5.4 2.安装交叉编译器: 主要是解压后要在设置交叉编译器的路径信息,即要为它设置一个环境变量。 把arm920t-eabi.tar.gz 放到/opt 目录下,解压该文件: # tar xzvf arm920t-eabi.tar.gz 必须说明的是,网上转载该交叉编译器解压开来,产生的是一个 /opt/toolchains/arm920t-eabi目录,在这里我们进行目录移动处理,把解压开来的/opt/toolchains/arm920t-eabi目录下面的/toolchains目录的所有内容剪切到系统/opt下面去,同时删除解压开来的/opt目录。 #gedit /root/.bashrc 这是编辑/root/.bashrc文件的命令,在末行添加上交叉编译器的路径信息: 使用source命令重新执行刚修改过的初始化文件,而不必重启机器。 # source /root/.bashrc

在HI3531上移植和运行QT4.8.6

在HI3531上移植和运行QT4.8.6 1、前言: 近段有点时间,想把QT移植到HI3531上,在网上查找了很多资料,但都不是很全面,有些有问题也没有得到很好的体现。 2、环境: PC:ubuntu10.04 HI3531交叉工具链:arm-hisiv100nptl-linux- QT版本:qt4.8.6(Qt libraries 4.8.6 for embedded Linux (230 MB) QT-Creator版本:qt-creator-linux-x86-opensource-2.4.1.bin 3、交叉编译: 1)进入qt-everywhere-opensource-src-4.8.6/mkspecs/qws目录,新建 linux-hisi3531nptl-g++目录,复制linux-arm-g++目录下的所有文件到linux-hisi3531nptl-g++ cp –a linux-arm-g++/* linux-hisi3531nptl-g++ 2)进入linux-hisi3531nptl-g++,修改文件qmake.conf # modifications to g++.conf QMAKE_CC = arm-hisiv100nptl-linux-gcc QMAKE_CXX = arm-hisiv100nptl-linux-g++ QMAKE_LINK = arm-hisiv100nptl-linux-g++ QMAKE_LINK_SHLIB = arm-hisiv100nptl-linux-g++ # modifications to linux.conf QMAKE_AR = arm-hisiv100nptl-linux-ar cqs QMAKE_OBJCOPY = arm-hisiv100nptl-linux-objcopy QMAKE_STRIP = arm-hisiv100nptl-linux-strip 3)打开文件qplatformdefs.h增加 #undef O_CLOEXEC 此处主要为解决:编译过程中找不到accept4函数问题 4)安装X11库 sudo apt-get install libX11-dev libXext-dev libXtst-dev 5)返回源码目录qt-everywhere-opensource-src-4.8.6进行配置 ./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531nptl-g++ -little-endian -qt-freetype -no-opengl -no-glib

谈谈我对Qt的理解

谈谈我对Q t的理解 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

谈谈我对Q t的理解 2018-01-05|分类:??|标签:|浏览(0) 进入研究生后(2010-09-02),刚开始一直专注于研究嵌入式系统开发。用实验室 ARM10(pxa-270-s)做实验,从理解嵌入式开发过程;交叉编译环境搭建过程;熟悉嵌入式基础开发(多线程应用程序设计、端口程序嵌入式WEB服务器实验、网络传输实验、GPS通讯实验、音频应用实验、红外通讯应用实验),其中GPS通讯实验、音频应用实验、红外通讯应用实验,这3部分由于没有实际的设备,只有外围接口,也就没 一步一步地走过来,来现在为止2011-6-22,感觉还是对Qt较为熟悉和亲切。如今想找个实习,也宁愿选择做Qt这个模块。 这几天一直能够陆续地参见一些面试,那么昨天面试的时候,被问到一个问题:也不到你对Qt的理解到什么地步了? 我以为能够独立地完成Qt的编译和移植,已经算是很牛了,结果那个面试官三言两语地:有源码可以编译,移植都有现成的交叉编译工具链,挺简单的呀! 回来我内心一直无法平静,久久地思考,我到底对Qt了解有多么深入呢? 终于在面试的第二天,也就是今天静下来,总结一下子自己对Qt的理解了。 Qt到底是什么呢? 在这里没有人逼问你,除了你自己,所以如果读者您也是学习Qt的,那么请在这里闭着眼睛,也想一想自己对Qt的理解。因为下边所述全是笔者对Qt的理解,并用自己的语言表述了出来。 Qt是一个C++的框架。 对框架的理解:建立在C++语言的之上,有了自己的更高级的接口和机制。 Qt是跨平台的。 对跨平台的理解:一次编码,随处编译;区别于JAVA的一次编译,随处可以运行;原因是Qt的编译和操作系统有关。 Qt是一个图形界面开发库。 对库的理解:就是在搭建好开发环境之后,根据对库的路径的设置来找到编译该程序所需要的头文件和动态链接文件。 Qt是一个包含500多个类和9000多个函数的库。 且有多个模块,程序员可以根据自己的实际需要调用不同的部分。 Qt有自己的开发工具。 开发工具包括:Kdevelop、Qdevelop、QtCreator、qt-designer。

QT5的ARM移植及其中文显示

1.1QT5的移植 1.1.1Qwt6的配置 1.1.1.1Win7平台的qwt插件安装 qwt源码下载:https://www.doczj.com/doc/5011174164.html,/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_DLL

飞凌OK210开发板Ubuntu下Qt4.7.1编译环境配置说明

Qt4.7.1交叉编译环境配置 1.编译tslib (2) 2.编译Qt4.7.1 (3) 3Qt creator的安装 (5)

Qt4.7.1交叉编译环境配置 PC环境:Ubuntu12.04 开发板:OK210 交叉编译器:arm-2009q3(即4.4.1) 1.编译tslib tslib库,是触摸屏校准时需要的库文件,如对触摸屏的数据进行过滤、去抖动等,QT的库会调用tslib的库文件. 编译tslib库 1.1将tslib.tar.gz,拷到Ubuntu下,解压tar xzvf tslib.tar.gz; 1.2安装autoconf、automake、libtool包 在Ubuntu命令行中分别执行以下三个升级命令。 #sudo apt-get install autoconf #sudo apt-get install automake #sudo apt-get install libtool #sudo apt-get insintall g++ 1.3进入tslib目录: cd tslib; 设置环境变量 #export PATH=/usr/local/arm/arm-2009q3/bin:$PATH #export TOOLCHAIN=/usr/local/arm/arm-2009q3 #export TB_CC_PREFIX=arm-linux- #export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux 1.4在tslib目录下运行脚本 ./autogen.sh 1.5用configure生成Makefile. echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache #./configure--host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib

ubuntu下QT环境搭建

在ubuntu下搭建QT环境,之前我已经装好了arm-linux-gcc3.4.1交叉编译环境 在终端输入 arm 再按两下tab建,看是不是有以下 arm2hpdl arm-linux-gcc arm-linux-objdump arm-linux-addr2line arm-linux-gcc-3.4.1 arm-linux-ranlib arm-linux-ar arm-linux-gccbug arm-linux-readelf arm-linux-as arm-linux-gcov arm-linux-size arm-linux-c++ arm-linux-gprof无arm-linux-strings arm-linux-c++filt arm-linux-ld arm-linux-strip arm-linux-cpp arm-linux-nm arm-linux-g++ arm-linux-objcopy 要准备的文件: 1.用于Linux/X11 32位的Qt Creator 1.3.1 二进制软件包qt-sdk-linux-x86-opensource-2010.04.bin 它是安装在虚拟机上做界面的软件QT creator。 2.用于嵌入式Linux 的Qt 库 4.6.2包qt-everywhere-opensource-src-4.6. 3.tar.gz 3.用于触摸屏校正的tslib-1. 4.tar.gz 注意解压之后文件夹名字为tslib不要改动。 4.用于编译的arm-linux-gcc-3.4.1.tar.bz2 这个我之前已经安装

ubuntu10.10下嵌入式QT开发环境搭建手记

【前言:由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上百度或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】 首先,去QT的官网(https://www.doczj.com/doc/5011174164.html,/downloads)下载文件:直接下载 Qt SDK for Linux/X11 32-bit** (422 MB)(这样比较简便,虽然可能占的空间要大一点) 2,第二步就是安装刚刚下载的二进制文件: chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin ./qt-sdk-linux-x86-opensource-2010.05.1.bin(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在red hat9的系统里 装完之后,发现red hat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好) 3 下载coss tools包: https://www.doczj.com/doc/5011174164.html,/crosstool/crosstool-0.43.tar.gz 4。安装cross tools mkdir ~/downloads 在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会 自动放到这个文件夹下 sudo apt-get install bison sudo apt-get install flex 以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。sudo apt-get install gcc-3.4 cd /usr/bin sudo ln -s gcc-3.4 gcc sudo rm gcc 正式安装 sudo mkdir /opt/crosstool sudo chown 当前登录的用户名 /opt/crosstool tar -zxvf crosstool-0.43.tar.gz cd crosstool-0.43 vi demo-arm.sh 注释掉#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest 在其后,加上eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest 注意:cat arm.dat gcc-4.1.1-glibc-2.3.2.dat而不是默认的gcc-4.1.1-glibc-2.3.6-tls.dat 修改linux内核版本,linux内核可以自己选择,我的linux内核是linux-2.6.24(前面下载的那个) lingd@ubuntu:~/downloads/crosstool-0.43$ vi gcc-4.1.1-glibc-2.3.2.dat BINUTILS_DIR=binutils-2.16.1 GCC_CORE_DIR=gcc-3.3.6

qt移植编译的参数和环境变量详解

-release 这个参数显而易见,就是编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。 -release 与上面对应,自然是调试版了,如果开发的话,可以选择它吧。 -debug-and-release 囧,上面那两个的儿子。 -developer-build 囧,我错了,开发者也可以用这个的,选了这个后,可以进行自动测试,不过还没去用过,以后可以研究研究。 -opensource -commercial 这两个参数是指是编译是商业版本的,还是开源版本呢,视个人情况而定。 -shared -static 这两个参数是指Qt的lib以动态还是静态编译生成,这自然也是视个人需要的。 -no-fast -fast 这两个就很有关系,如果对自己的电脑性能很有信心,那就选第一个,那所有的工程文件都会生成到makefiles中,那编译的时间,估计可以看完变形金刚了。如果选第二个,那就加入子目录和库到makefiles,这样就能加快编译的速度。 -no-largefile -largefile 顾名思义,支不支持大文件,一般来说,嵌入式里是不会有从超过4G的大文件的,那就选第一个吧。 -no-exceptions -exceptions 计算机英语够好的人都该懂,这个自然就是异常情况,选则编译器支持抛出异常,否则不支持。 -no-accessibility -accessibility 可访问性的支持,说实话,这个我真不知道有什么有用了。等哪天发现了,再来好好解释。-no-stl -stl 是都加入stl的支持,stl,这应该算是C++程序员应该都了解了,再不济,那也总听说过大名吧。 no-sql--qt-sql- -plugin-sql- 这个可要好好说明下,一般来说,对于一个优秀的项目开发,数据库是必不可少的,qt也自带了大多数数据库驱动,可以完美地支持数据库的使用。对于数据库的使用,我们可以直接qt驱动编译进去,或者以插件的形式编译进去。一般来说,最简单地就是直接编译进去,但使用插件形式的可以更加灵活,针对不同的需求将驱动插件添加。其中,<>代表的是驱动名,如果我想直接添加sqlite的支持话,形式如下:-qt-sql-sqlite。其他名称可以自己查看参

QT移植与开发环境搭建

一:软硬件 1. 主机: ubuntu 8.04 2. 平台:devkit8000(omap3530) 3. tslib-1.4 4. QT版本: qt-embedded-linux-opensource-src-4.4.3.tar.gz 5. 交叉编译工具:arm-none-linux-gnueabi-2007q3 二: 移植tslib 1. tar xzvf tslib-1.4.tar.gz export CC=arm-none-linux-gnueabi-gcc export CXX=arm-none-linux-gnueabi-g++ 2. cd tslib/ ./autogen.sh 执行这条命令可能会报错,需要安装以下工具: sudo apt-get install autoconf sudo apt-get install automake sudo apt-get install libtool 3. echo "ac_cv_func_malloc_0_nonnull=yes" >arm-none-linux-gnueabi.cache ./configure --host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no PLUGIN_DIR=/home/tslib/plugins -prefix=/home/tslib/build --cache-file=arm-none-linux-gnueabi.cache 2>&1 | tee conf_log 4. make 2>&1 | tee make_log make install 5. 将/home/tslib/build/lib下除去pkgconfig目录外其他所有文件拷贝到开发板/lib目录下 6. 将/home/tslib/build/etc下的ts.conf拷贝到开发板的/etc下 module_raw input module pthres pmin=1 module variance delta=30 module dejitter delta=100 module linear 注意只留这几行,其他的必须全部删掉,包括注释。 7. 设置环境变量,在开发板文件系统的/etc/profile文件里添加以下命令:

qt程序移植到arm开发板

1、安装交叉编译工具链arm-linux-gcc ●复制arm-linux-gcc-4.4.3.tar.gz到/home/tools文件夹里 ●解压命令tar xvzf arm-linux-gcc-4.4.3.tar.gz -C / (解压文件到根目 录下)注意以上命令必须要有-C而且是大写,后边有个空格也要注意。 注意查看解压的路径,将解压生成的文件移动到usr/local/arm目录下 ●vi /etc/profile ●在文件的末尾加上PATH=/usr/local/arm/4.4.3/bin:$PATH ●输入命令:source /etc/profile(使刚修改的文件立即生效) ●查看arm-linux-gcc版本arm-linux-gcc -v 注意:此方法只对当前登录用户有效,更换用户后修改当前登录用户/etc/profile即可2、tslib编译与安装 tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。因此这里先编译安装tslib,这样在后面编译Qt的时候才能打包编译进去。 ●需要检查一下软件是否安装 sudo apt-get install automake sudo apt-get install autogen sudo apt-get install autoconf ●确定以上工具都已经安装后,复制tslib-1.4.tar到/home/tools文件夹里 tar -zxvf tslib-1.4.tar.gz cd tslib ./autogen.sh ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslib make make install

Fedora下Qt环境搭建

Fedora下Qt环境搭建 基于VMware7.1.4上的Fedora 14操作系统tslib-1.4.tar.gz arm-linux-gcc-4.3.2.tar.gz qt-everywhere-opensource-src-4.7.4.tar.gz 二.安装交叉编译环境: 把arm-linux-gcc-4.3.2.tar.gz放到/tmp 目录下 # tar xzvf arm-linux-gcc-4.3.2.tar.gz -C / # vim /root/.bashrc 编辑/root/.bashrc文件,在最后一行添加: export PATH=$PATH:/usr/local/arm/4.3.2/bin

保存退出后回到终端,然后使得刚才添加的环境变量生效: # source /root/.bashrc # arm-linux-gcc -v 可以看到版本信息 五.安装Qt for PC(X11) 1.1、建立目录Qt目录 mkdir /opt/FriendlyARM/mini2440/Qt 1.2、解压qt-everywhere-opensource-src-4.7.4.tar.gz 并更改目录名 tar xvzf qt-everywhere-opensource-src-4.7.4.tar.gz -C /opt/FriendlyARM/mini2440/Qt cd /opt/FriendlyARM/mini2440/Qt mv qt-everywhere-opensource-src-4.7.4 qt-for-x11 1.3、开始配置文件:

# cd qt-for-x11 #. /configure 接着提示要使用商业版还是开源版:输入o后回车选择开源版; 然后提示可以使用开源协议:输入yes后回车即可。 1.4、#gmake //编译,这个过程要等几个小时的时间1.5、#gmake install //开始安装基于PC上的Qt 1.6、安装目录在新生成的目录下面:/usr/local/Trolltech/Qt-4.7.4 1.7、使用时需添加 #export PATH=”/usr/local/Trolltech/Qt-4.7.1/bin:$PATH” 然后输入#qmake –v (如能输出版本号,则说明安装成功) 1.8、编译qvfb(Virtual Framebuffer) 为QT-embedded X86 作准备

嵌入式qt编程环境和程序设计方法

基于Qt界面系统设计 姓名:张恒 学号:1145532229 班级:计算机科学与技术二班 2014年4月12号

一.实验要求: 1.基于qt的嵌入式系统界面设计 功能要求: (1)移植sqlite数据库到嵌入式系统平台 (2)自己学习qt编程环境和程序设计方法 基于Qt设计界面,实现对数据库的增删改查操作 二.实验目的: (1)基本掌握qt界面设计的方法与操作流程。 (2)熟练qt语言的编写命令。 (3)熟练掌握linux下的基本命令。 三.实验过程: 1.将实验目录拷贝到/home下,执行install.sh脚本,该脚本会自动搭建系统开发环境,安装交叉编译器。 2.Image 目录中CP210x_VCP_Win2K_XP_S2K 3.exe文件是USB转232驱动,需首先安装。安装后查看设备管理器中添加的串口是cmo。这个可以自行修改。但是不能占用其他串口。 3.打开超级终端,选择设备管理器中已有的串口设备,设置115200 8 N 1 无(跟之前2410一样,win7可以在网上下载安装) 4.上电开发板,若终端中有系统启动,则表明系统已经启动。 5.在home目录下建立/QT目录,再次目录下有三个子目录src,x11,arm,src用于存放未解压的压缩文件,x11是qt-x11-opensource-src-4.4.0.tar的解压目录,arm是qt-embedded-linux-opensource-src-4.4.0.tar的解压目录。 Src目录: 解压文件 Tar xzvf /home/QT /src/qt-x11-opensource-src-4.4.0.tar.gz -C /home/QT/x11 Tar xjvf /home/QT/src/qt-embedded-linux-opensource-src-4.4.0.tar.bz2 -C /home/QT/arm Tar xjvf /home/QT/src/tslib-1.4.tar.bz2 -C /home/QT/arm 安装x11环境: 进入x11目录:

谈谈我对QT的理解

谈谈我对Qt的理解 2013-07-18 | 分类: QT | 标签:| 浏览(0) 进入研究生后(2010-09-02),刚开始一直专注于研究嵌入式系统开发。用实验室ARM10(pxa-270-s)做实验,从理解嵌入式开发过程;交叉编译环境搭建过程;熟悉嵌入式基础开发(多线程应用程序设计、端口程序嵌入式WEB服务器实验、网络传输实验、GPS 通讯实验、音频应用实验、红外通讯应用实验),其中GPS通讯实验、音频应用实验、红外通讯应用实验,这3部分由于没有实际的设备,只有外围接口,也就没有进一步深入地了解了;嵌入式图形界面开发Qt,对这一部分比较痴迷,就一直钻进去了,同时也伴随着编译linux内核等实践活动。[喝小酒的网摘]https://www.doczj.com/doc/5011174164.html,/a/8568.htm 一步一步地走过来,来现在为止2011-6-22,感觉还是对Qt较为熟悉和亲切。如今想找个实习,也宁愿选择做Qt这个模块。 这几天一直能够陆续地参见一些面试,那么昨天面试的时候,被问到一个问题:也不到你对Qt 的理解到什么地步了? 我以为能够独立地完成Qt的编译和移植,已经算是很牛了,结果那个面试官三言两语地:有源码可以编译,移植都有现成的交叉编译工具链,挺简单的呀! 回来我内心一直无法平静,久久地思考,我到底对Qt了解有多么深入呢? 终于在面试的第二天,也就是今天静下来,总结一下子自己对Qt的理解了。 Qt到底是什么呢? 在这里没有人逼问你,除了你自己,所以如果读者您也是学习Qt的,那么请在这里闭着眼睛,也想一想自己对Qt的理解。因为下边所述全是笔者对Qt的理解,并用自己的语言表述了出来。 Qt是一个C++的框架。 对框架的理解:建立在C++语言的之上,有了自己的更高级的接口和机制。 Qt是跨平台的。 对跨平台的理解:一次编码,随处编译;区别于JAVA的一次编译,随处可以运行;原因是Qt 的编译和操作系统有关。 Qt是一个图形界面开发库。 对库的理解:就是在搭建好开发环境之后,根据对库的路径的设置来找到编译该程序所需要的头文件和动态链接文件。 Qt是一个包含500多个类和9000多个函数的库。 且有多个模块,程序员可以根据自己的实际需要调用不同的部分。 Qt有自己的开发工具。 开发工具包括:Kdevelop、Qdevelop、Qt Creator、qt-designer。 当然也可以在eclipse-c/c++中开发。 Qt可以简单到如此?

关于ubuntu与树莓派 qt5交叉编译环境搭建

关于ubuntu与树莓派的qt交叉编译环境的搭建设备及环境版本: 1、树莓派镜像2016-02-26-raspbian-jessie.img(官网下载)(绝对不能用stretch版!) 2、cross-compile-tools-master.zip 3、gcc-4.7-linaro-rpi-gnueabihf.tbz 4、qt-everywhere-opensource-src-5.3.2.tar.gz(官网下载)版本要和树莓派中的qt保持一致 Ubuntu 提前准备 1.1 gcc编译环境安装 1.2安装openGL 1.3 如果您的ubuntu为64位则需要32位软件支持:sudo apt-get install ia32-libs 如果ubuntu版本过提示没有ia32-libs高,请安装下面一套 sudo apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxc b-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync1 libxcb-sync-dev libxcb-render-util0 libxcb-render-util0-dev libxc b-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev (32位的ubuntu可以忽略此步骤) 1.4在home中创建文件夹opt用来下载存放工程中需要使用的软件。 *1.5在~/opt中使用git clone git://code.qt.io/qt/qt5.git,拷贝一份qt5取代qt-everywhere-o pensource 如使用上述替代方案请在~/opt/qt5文件夹下执行 ./init-repository初始化qt5储存库。 如果你在防火墙后面./init-repository可能会失败。首先运行此命令:sed -i 's/git:/https: git./' .gitmodules 然后重试./init-repository –f 环境搭建 2.1在opt中解压压缩包。 2.2挂载树莓派镜像 创建文件夹sudo mkdir /mnt/rasp-pi-rootfs(此为待会镜像系统装载的文件夹) 查看offest要在img文件所在的opt文件夹下执行$sudo fdisk -l 2015-05-05-raspbian-w heezy.img(2015-05-05-raspbian-wheezy.img是img文件名随着使用的版本不同做适应性更

包括ubuntu Qt ARM 移值等的项目总结 原创

目录 1、安装虚拟机VMware Workstation 7.0.1 (2) 2、安装系统ubuntu-9.10-desktop-i386.iso (2) 3、升级ubuntu系统 (2) 4、汉化系统 (2) 5、增加拼音输入法 (2) 6、设置共享文件夹 (3) 7、安装QT软件 (3) 8、安装g++ (3) 9、安装移植TSLIB (3) 10、Qt4.7 移植到ARM板之友善6410 (4) 11、PC版本的QT编译为ARM版本 (5) 12、在ARM板上运行自己编写的Qt4.7程序 (5) 13、将自己的QT4程序设为开机自启动 (6) 14、设置NFS (6) 15、qt字库的移植 (6) 16、qt控制屏幕校准 (6) 17、切换root用户的几种方法及其区别 (6) 18、root用户自动登录 (7) 19 数据库浏览器安装 (7) 20.虚拟机串口设置 (7)

1、安装虚拟机VMware Workstation 7.0.1 解压缩——>安装——>配置 ① 打开快捷方式 ② 新建工程File-new-virtual Machine ③ 选择custom (advanced可以进行一些特殊设置) ④ Handware compatibility:workstation 6.5-7.0 ⑤ I will install the operating system later The virtual machine will be created with a black hard disk ⑥ Linux-->ubuntu(32位) ⑦ 虚拟机起名字 ⑧ 默认 ⑨ 分配内存:512 ⑩ 网络连接桥接 ? 新建虚拟硬盘,next,最大值:50G(使用多大划出多大,不会一次性占用50G) ? 完成 选择Hardware中软盘移除 2、安装系统ubuntu-9.10-d esktop-i386.iso 安装ISO模式ubuntu 打开虚拟机 选择中文(简体) 安装 设置时间:上海 键盘布局测试asdf 清空并使用整个硬盘 安装 3、升级ubuntu系统 System--->administration--->update Manage /sofeware source 4、汉化系统 可能安装过程中语言设置不成功 使用ubuntu---> System--->administration--->Language support更新语言 5、增加拼音输入法 点击ubuntu左上角首选项设置

(VR虚拟现实)最具体的QT移植ARM开发板方法最全版

(VR虚拟现实)最具体的QT移植ARM开发板方法

QT4移植到ARM9开发板 1编译qte 1.从下载源代码,选择开源版本(非商业版本),选择Qtlibraries4.5forembeddedlinux(128M) 2.在源代码目录下执行: 3../configure–embeddedarm-xplatformqws/linux-arm-g++-no-qt3support-qt-mouse-linuxtp 4.在redhat9.0环境需要作一些修改才能编译通过: 5.ln-s/usr/kerberos/include/_err.h/usr/include/ 6.ln-s/usr/kerberos/include/profile.h/usr/include/ 7.ln-s/usr/kerberos/include/krb5.h/usr/include/ 8.visrc/gui/text/qfontengine_ft.cpp,注释掉710行 9.make(时间4个小时左右) 10.makeinstall 2编译busybox1.13.4 从http:///article/1454969.html 在主机/root目录下面新建一个文件#geditqte_env,添加如下内容 exportQTDIR=/mnt/nfs/qtcore434 exportPATH=$QTDIR/bin:$PATH exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH 需要交叉编译的时候,重新开一个终端,在/root目录下(主机上为了方便,我一直采用root

相关主题
文本预览
相关文档 最新文档