下载地址:http://download.qt.io/

当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受

获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受


Qt for windows7-64bit

在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version和g++ --version和mingw32-make --version验证安装成功

解压qt-everywhere-opensource-src-4.8.1.tar.gz并进入目录

configure -debug-and-release -opensource -platform win32-g++ -webkit  (如果需要重新configure,运行mingw32-make confclean,然后重新configure)
如果想使用VS的编译器,就指定-platform win32-msvc2013(VS2013版本)
mingw32-make(如果是VS就是nmake,需要在VS2013开发人员命令提示中使用)
如果指定了prefix路径输入:mingw32-make install

把qt-everywhere-opensource-src-4.8.1/bin加入PATH

qmake –version 
mingw32-make docs 生成doc-build文件夹文档

Qt已安装完毕,cmd命令行下使用如下命令生成可执行文件

qmake -project
qmake
mingw32-make // debug目录下生成可执行文件
debug\文件名.exe

如果是VS的编译器则使用qmake -r -spec win32-msvc2013然后执行nmake,需要在VS2013 开发人员命令提示中使用

或者qmake -r -spec win32-msvc2013 -tp vc生成vcxproj工程文件,双击打开,使用VS编译

Qt5.3.1 静态编译的configure:http://blog.csdn.net/sniper_bing/article/details/38067887


Ubuntu 12.04-32bit      Linux X11平台

用于X Window System(如Solaris、AIX、HP-UX、Linux、BSD)

tar zxvf qt-everywhere-opensource-src-4.8.1.tar.gz

在./configure前主动装好下面3个包

sudo apt-get install libX11-dev libXext-dev libXtst-dev
./configure -debug -developer-build -opensource -shared -fast -no-multimedia -xmlpatterns -no-audio-backend -no-phonon -svg -no-webkit -javascript-jit -script -scripttools -declarative -declarative-debug -qt-zlib -qt-libtiff  -qt-libpng  -qt-libmng -no-openssl -verbose -optimized-qmake -no-xinerama -no-xvideo -no-xshape -no-xsync 
make 
make install

Qt已安装完毕,使用如下命令生成可执行文件

/usr/local/Trolltech/Qt-4.8.1/bin/qmake -project   // qmake默认安装路径
/usr/local/Trolltech/Qt-4.8.1/bin/qmake
make
./生成的可执行文件

Linux 下编译、安装、配置 QT

http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html


嵌入式x86平台

可以通过编译移除不常使用的组件与功能。通过自己的视窗系统QWS,不需依赖X Window System,直接写入Linux帧缓冲。可以减少存储器消耗。并提供虚拟帧缓冲QVFB,方便在桌面系统上进行嵌入式测试。

解压qt-everywhere-opensource-src-4.8.1.tar.gz并进入

apt-get install qt4-dev-tools
./configure -embedded x86 -qvfb -no-webkit 
make
make install

qt embedded x86被安装在/usr/local/Trolltech/QtEmbedded-4.8.1,里面的qmake, moc,uic等都是for embedded x86,用来编译embedded程序的

Qt已安装完毕,测试

/usr/local/Trolltech/QtEmbedded-4.8.1/bin/qmake -project
/usr/local/Trolltech/QtEmbedded-4.8.1/bin/qmake
make
qvfb -width 800 -height 600 &     // 打开qvfb用来显示程序
./可执行文件名 -qws                 // 程序显示在qvfb上

QT是基于C/S模型的,也就是客户端/服务器模型,QT如果需要运行图形界面程序就需要server端的支持。这个服务器端就是QWS Server。默认情况下,嵌入式端的系统是不会启动QWS Server的,所以如果只有一个图形界面程序,就必须给它加上-qws参数,让它以服务器的形式运行,这样才能启动QWS Server。


嵌入式arm平台

先根据手册在linux上搭建mtk开发环境,安装好交叉编译工具(linux上有armv6z-mediatek451_001_vfp-linux-gnueabi-gcc这条命令)

解压qt-everywhere-opensource-src-4.8.1.tar.gz并进入

在qt-everywhere-opensource-src-4.8.1/mkspecs/qws/下创建armv6z-mediatek451_001_vfp-linux-gnueabi/文件夹,复制linux-arm-g++目录下的qplatformdefs.h和qmake.conf到armv6z-mediatek451_001_vfp-linux-gnueabi下,修改qmake.conf,在qmake.conf中加入如下两行

QT_CFLAGS_DIRECTFB = -I/opt/share/release/BDP_Linux/oss/library/DirectFB/usr    /include/directfb -D_REENTRANT

QT_LIBS_DIRECTFB = -L/opt/share/release/BDP_Linux/oss/library/DirectFB/lib -    ldirectfb -lfusion -ldirect -lpthread

(解压release/BDP_Linux/oss/library/DirectFB)

以下为qmake.conf文件内容

# qmake configuration for building with armv6z-mediatek-linux-gnueabi-g++
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC                = armv6z-mediatek451_001_vfp-linux-gnueabi-gcc
QMAKE_CXX               = armv6z-mediatek451_001_vfp-linux-gnueabi-g++
QMAKE_LINK              = armv6z-mediatek451_001_vfp-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = armv6z-mediatek451_001_vfp-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR                = armv6z-mediatek451_001_vfp-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = armv6z-mediatek451_001_vfp-linux-gnueabi-objcopy
QMAKE_STRIP             = armv6z-mediatek451_001_vfp-linux-gnueabi-strip
QT_CFLAGS_DIRECTFB = -I/opt/share/release/BDP_Linux/oss/library/DirectFB/usr    /include/directfb -D_REENTRANT
QT_LIBS_DIRECTFB = -L/opt/share/release/BDP_Linux/oss/library/DirectFB/lib -    ldirectfb -lfusion -ldirect -lpthread
 
load(qt_config)

修改qt-everywhere-opensource-src-4.8.1/src/corelib/io/io.pri

linux-*|armv6z-*:{     // linux-*后面加上|armv6z-*

然后安装

./configure -release -embedded arm -fast -xplatform qws/armv6z-mediatek451_001_vfp-linux-gnueabi -v -developer-build -opensource -xmlpatterns -svg -no-webkit -javascript-jit -script -scripttools -declarative -optimized-qmake -reduce-relocations -exceptions -depths all -lrt -qt-zlib -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -qt-freetype -no-dbus -nomake examples -nomake demos -nomake docs -nomake translations -no-largefile -no-phonon -no-phonon-backend -no-opengl -no-multimedia -no-audio-backend -no-declarative-debug -plugin-gfx-directfb -no-gfx-transformed -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen -no-gfx-qnx -no-gfx-integrityfb -little-endian -host-little-endian -qt-sql-sqlite -openssl-linked -I/home/release/BDP_Linux/oss/library/openssl/usr/include -L/home/release/BDP_Linux/oss/library/openssl/usr/lib -lssl -lcrypto -prefix /opt/share/qt-4.8.1-arm
(记得解压release/BDP_Linux/oss/library/openssl,-I和-L路径可能有所不同(I=include , L=library)

-xplatform 参数

QT使用qmake 产生Makefile,为了让QT在不同平台下编译,QT预先定义一些平台Makefile变量。这一些变量根据编译平台不同,采用不同的值。如QMAKE_CC在ARM-LINUX下等于arm-linux-gcc,这一些变量都存在名为qmake.conf文件里。当qmake生成Makefile时,将采用这个文件的值。QT已经针对所有测试过的平台都写相应的qmake.conf,它全部放在QT目录下的mkspecs目录,其中针对QT窗口系统(QWS)的平台放在 mkspecs/qws下面。

-xplatform 就是告诉configure ,生成qt 4.8.1库的Makefile采用哪一个qmake.conf。

configure -xplatform qws/linux-arm-g++ 即表示采用 qws/linux-arm-g++的qmake.conf,而且这个格式很简单,所以如果有一个新的嵌入式平台,你完全可以在qws建个类似qmake.conf,只要用xplatform通知configure 即可。但是目录名必须是 linux-XXXX-g++(所以上面的红字修改是因为我们的qmake.conf文件夹不是以linux开头)

-prefix 参数

Qt安装的路径

configure完成后根据提示

gmake
gmake install

安装成功,测试

/qt-4.8.1-armv6z/bin/qmake -project
/qt-4.8.1-armv6z/bin/qmake
make

交叉编译成功

QT编译出错解决

http://lanxinyuchs.iteye.com/blog/934967

搭建好nfs

将程序挂载到开发板上,命令为:mount -o nolock 192.168.100.182:/opt/nfs  /mnt/ubi_boot/nfs

nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能,简单的解决方法:kill 文件锁(lockd)或者mount -o nolock

-o options 主要用来描述设备或档案的挂载方式,由于很多嵌入式设备的根文件系统中不带portmap,所以一般都使用-o nolock参数,即不使用NFS文件锁,这样就可以避免使用portmap。

挂载成功后将程序拷贝到/mnt/ubi_boot/main目录下,由于程序运行需要一些Qt库,需要显示到电视机(directfb),添加环境变量(可写成脚本执行,然后用source qtenv.sh命令使环境变量生效,echo $查看变量是否设置成功)

export QTDIR=/

export QT_PLUGIN_PATH=$QTDIR/plugins/

export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib:/usr/local/lib:/mnt/ubi_boot/main

然后执行程序./可执行文件名-qws -display directfb

QTE4.6移植以及相关参数介绍

http://blog.csdn.net/songjinshi/article/details/6554346

qt embedded-linux 4.5.2+arm移植开发环境搭建全攻略

http://hi.baidu.com/deep_pro/item/fe01ecbd3fddc3d684dd7943

附录

Qt configure 参数说明(中文)

http://blog.csdn.net/mociml/article/details/5317592

Building Qt

http://processors.wiki.ti.com/index.php/Building_Qt

Qt4.7.4下单独编译QtWebkit

http://blog.sina.com.cn/s/blog_8738908f0100u84l.html

Ubuntu12.04下配置安装Qt4.6.3 及移植到mini2440开发板及其使用全过程

http://blog.csdn.net/mybelief321/article/details/10137993

https://my.oschina.net/crucian/blog/223107

Qt在各平台上的搭建qt-everywhere(Qt for windows7-64bit, Ubuntu 12.04-32bit, 嵌入式x86平台, 嵌入式arm平台)的更多相关文章

  1. Ubuntu 12.04下搭建Qt开发环境

    http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...

  2. ubuntu 12.04下安装Qt出现cannot execute binary file的解决方案

    最近在ubuntu 12.04下安装QT的过程中,遇到一个问题. ./qt-opensource-linux-x64-5.7.0.run出现了bash: ./qt-opensource-linux-x ...

  3. Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程

    Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程Linux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 交叉编译器版本:arm-linux-gcc-4. ...

  4. Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解

    Linux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 交叉编译器版本:arm-linux-gcc-4.4.3 交叉编译器下载 见这篇文章http://www.linuxidc.c ...

  5. Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

    1.下载angularjs 进入其官网下载:https://angularjs.org/‎,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angular ...

  6. Ubuntu 12.04搭建MTK 6577 安卓开发环境

    Ubuntu 12.04搭建 MTK 6577安卓开发环境 1.       下载并安装Vmware虚拟机: 2.       下载并在虚拟机上安装Ubuntu 12.04 iso 安装包:下载地址: ...

  7. Ubuntu 12.04 搭建Android开发环境

    Ubuntu 12.04 搭建Android开发环境 2013/7/29 Linux环境下搭建Android开发环境 大部分开发人员可能都在Windows下做开发,可能是感觉在Windows下比较方便 ...

  8. Ubuntu 12.04 搭建 Eclipse Android 开发环境(转)

    Ubuntu 12.04 搭建 Eclipse Android 开发环境 http://blog.sina.com.cn/s/blog_93dc666c0101b39p.html (2012-09-0 ...

  9. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

随机推荐

  1. 【前端统计图】echarts多条折线图和横柱状图实现

    参考链接:echarts官网:http://echarts.baidu.com/ 原型图(效果图): 图片.png 代码: <!DOCTYPE html> <html> < ...

  2. 【BZOJ 1020】 [SHOI2008]安全的航线flight

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1020 [题意] [题解] 二分+判断点是否在多边形区域内+计算点到直线的最短距离 对于 ...

  3. 【bzoj2453】维护队列 (分块 + 二分)

    传送门(权限题) 题目分析 题意为:求区间内有多少种不同的数,带修改. 首先对原序列分块,用last[i]表示与i相同的上一个在哪里,然后将分块后的数组每个块内的按照last进行排序,这样查询时就可以 ...

  4. 函数模板“偏特化” (C++)

         模板是C++中很重要的一个特性,利用模板可以编写出类型无关的通用代码,极大的减少了代码量,提升工作效率.C++中包含类模板.函数模板,对于需要特殊处理的类型,可以通过特化的方式来实现特定类型 ...

  5. 共享Session

    概述 现在的大型网站中,会面临实现多台服务器中的session数据共享问题.当使用多台服务器架设成集群之后,我们通过负载均衡的方式,同一个用户(或者ip)访问时被分配到不同的服务器上,假设在A服务器登 ...

  6. css 单选框 样式 填充自定义背景 after

    input[type='radio'] //width 16px //height 16px display none //input[type='radio']:chcked // backgoun ...

  7. DirectUI 2D/3D 界面库集合 分析之总结

    DirectUI优点在于能够非常方便的构建高效,绚丽的,非常易于扩展的界面.作者是Bjarke Viksoe, 他的这个界面程序思想和代码都很优秀,他的代码主要表述了他的思想,尽管bug比較多,可是很 ...

  8. JavaScript严谨模式(Strict Mode)提升开发效率和质量

    http://flandycheng.blog.51cto.com/855176/982719 http://my.oschina.net/Jsiwa/blog/272761

  9. Internet protocol security (ipsec) packet processing for multiple clients sharing a single network address

    Embodiments of the present invention address deficiencies of the art in respect to secure communicat ...

  10. robot framework的使用说明

    robot framework安装说明1.安装python2.7.15运行安装包python-2.7.15.amd64.msi 2.robot framework(1)解压最新的压缩包如robotfr ...