zoukankan      html  css  js  c++  java
  • Qt在各平台上的搭建qt-everywhere(Qt for windows7-64bit, Ubuntu 12.04-32bit, 嵌入式x86平台, 嵌入式arm平台)

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

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

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


    Qt for windows7-64bit

    在电脑上安装mingw(搜索mingw for windows),将C:MinGWin添加进环境变量,打开命令行输入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

  • 相关阅读:
    LVS基于DR模式负载均衡的配置
    Linux源码安装mysql 5.6.12 (cmake编译)
    HOSt ip is not allowed to connect to this MySql server
    zoj 3229 Shoot the Bullet(无源汇上下界最大流)
    hdu 3987 Harry Potter and the Forbidden Forest 求割边最少的最小割
    poj 2391 Ombrophobic Bovines(最大流+floyd+二分)
    URAL 1430 Crime and Punishment
    hdu 2048 神、上帝以及老天爷(错排)
    hdu 3367 Pseudoforest(最大生成树)
    FOJ 1683 纪念SlingShot(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/findumars/p/6375789.html
Copyright © 2011-2022 走看看