zoukankan      html  css  js  c++  java
  • qwt的安装和移植-

    目须要依据实时数据绘制出图表,因此我们找到了qwt库。这个库是一个绘制图表,曲线图,柱状图的统计图标。

    。。

    以下我们就具体解说一下这个库在Larm上的编译和移植

    qwt介绍

    QWT,全称是Qt Widgets for Technical Applications。是一个基于LGPL版权协议的开源项目, 可生成各种统计图。
    它为具有技术专业背景的程序提供GUI组件和一组有用类。其目标是以基于2D方式的窗口部件来显示数据。 数据源以数值,数组或一组浮点数等方式提供, 输出方式能够是Curves(曲线),Slider(滚动栏),Dials(圆盘)。Compasses(仪表盘)等等。

    该工具库基于Qt开发,所以也继承了Qt的跨平台特性。

    qwt下载

    工程仓库  http://sourceforge.jp/projects/sfnet_qwt/
    源代码 http://cznic.dl.sourceforge.net/project/qwt/qwt/6.1.0/qwt-6.1.0.tar.bz2
    文档 http://cznic.dl.sourceforge.net/project/qwt/qwt/6.1.0/qwt-6.1.0.pdf

    编译安装

    将qwt的源代码解压,我们会发现源代码的结构非常easy
    Qwt文件文件夹非常easy,designer文件夹中存放的是Qwt插件的源代码,doc文件夹中存放的是帮助文档,example文件夹中存放的是Qwt的简 单样例的源代码,src文件夹中存放的是Qwt的源代码,textengines文件夹中存放的是数学指标语言的文本驱动引擎代码。此外Qwt文件夹还有工程文件qwt.pro。以及qwtconfig.pri配置文件。


    我们没发现configure脚本,可是发现了qwt.pro非常明显,这个源代码是以Qt工程的方式公布的。我们编译它。事实上就是编译一个qt应用程序。

    那么我们用不同版本号的qmake就会配置出不同的qwt库,比如用qmake-4.8.5-x11就编译出, x11可用的qwt, 相同qmake-4.8.5-arm就编译出了arm库了,
    那么我们怎么配置它呢。好的,非常明显,qwtconfig.pri。这名字非常明显对不正确,里面内容没多少行。
    以下我们具体看看这个配置文件的信息
    ################################################################
    # Qwt Widget Library
    # Copyright (C) 1997   Josef Wilgen
    # Copyright (C) 2002   Uwe Rathmann
    #
    # This library is free software; you can redistribute it and/or
    # modify it under the terms of the Qwt License, Version 1.0
    ################################################################
    #  
    #  这个是qwt的版本号号
    #	qwt6.1.0
    QWT_VER_MAJ      = 6
    QWT_VER_MIN      = 1
    QWT_VER_PAT      = 0
    QWT_VERSION      = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT}
    
    ######################################################################
    # Install paths
    ######################################################################
    
    # 这个是安装的配置,比方安装路径等
    # 从这里我们能够看到,
    #	qwt默认安装到/usr/local下。
    #	默认建立一下几个主要文件夹doc, include, lib
    #	次要主文件夹/plugins/designer, /features
    #
    #
    QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
    
    unix {
        QWT_INSTALL_PREFIX    = /usr/local/qwt-$$QWT_VERSION
    }
    
    win32 {
        QWT_INSTALL_PREFIX    = C:/Qwt-$$QWT_VERSION
    }
    
    QWT_INSTALL_DOCS      = $${QWT_INSTALL_PREFIX}/doc
    QWT_INSTALL_HEADERS   = $${QWT_INSTALL_PREFIX}/include
    QWT_INSTALL_LIBS      = $${QWT_INSTALL_PREFIX}/lib
    
    ######################################################################
    # Designer plugin
    # creator/designer load designer plugins from certain default
    # directories ( f.e the path below QT_INSTALL_PREFIX ) and the 
    # directories listed in the QT_PLUGIN_PATH environment variable.
    # When using the path below QWT_INSTALL_PREFIX you need to
    # add $${QWT_INSTALL_PREFIX}/plugins to QT_PLUGIN_PATH in the 
    # runtime environment of designer/creator.
    ######################################################################
    
    QWT_INSTALL_PLUGINS   = $${QWT_INSTALL_PREFIX}/plugins/designer
    
    # linux distributors often organize the Qt installation
    # their way and QT_INSTALL_PREFIX doesn't offer a good
    # path. Also QT_INSTALL_PREFIX is only one of the default
    # search paths of the designer - not the Qt creator
    
    #QWT_INSTALL_PLUGINS   = $$[QT_INSTALL_PREFIX]/plugins/designer
    
    ######################################################################
    # Features
    # When building a Qwt application with qmake you might want to load
    # the compiler/linker flags, that are required to build a Qwt application
    # from qwt.prf. Therefore all you need to do is to add "CONFIG += qwt" 
    # to your project file and take care, that qwt.prf can be found by qmake.
    # ( see http://doc.trolltech.com/4.7/qmake-advanced-usage.html#adding-new-configuration-features )
    # I recommend not to install the Qwt features together with the
    # Qt features, because you will have to reinstall the Qwt features,
    # with every Qt upgrade. 
    ######################################################################
    
    QWT_INSTALL_FEATURES  = $${QWT_INSTALL_PREFIX}/features
    # QWT_INSTALL_FEATURES  = $$[QT_INSTALL_PREFIX]/features
    
    
    #
    #
    #
    # 以下这些选项非常重要了, 由于您的qt假设是自编译的, 
    #	那么非常多第三方库,或者支持库是没有被编译的
    #	并且尤其在arm上我们编译qwt时候, 编译那么多无用的支持是无用的
    #	QWT_CONFIG能够为动态的增减我们须要的库支持
    #
    ######################################################################
    # Build the static/shared libraries.
    # If QwtDll is enabled, a shared library is built, otherwise
    # it will be a static library.
    ######################################################################
    #	选择是编译成静态库还是动态库
    QWT_CONFIG           += QwtDll
    
    ######################################################################
    # QwtPlot enables all classes, that are needed to use the QwtPlot 
    # widget. 
    ######################################################################
    
    QWT_CONFIG       += QwtPlot
    
    ######################################################################
    # QwtWidgets enables all classes, that are needed to use the all other
    # widgets (sliders, dials, ...), beside QwtPlot. 
    ######################################################################
    
    QWT_CONFIG     += QwtWidgets
    
    ######################################################################
    # If you want to display svg images on the plot canvas, or
    # export a plot to a SVG document
    ######################################################################
    # 
    QWT_CONFIG     += QwtSvg
    
    ######################################################################
    # If you want to use a OpenGL plot canvas
    ######################################################################
    #  是否支持QwtOpenGL, 依赖于QtOpenGL库
    #	不必选, 
    #	假设您不须要QwtOpenGL支持, 能够凝视
    #	假设Qt库中没编译QtOpenGL, 必须凝视, 否则编译出错, 由于找不到依赖的QtOpenGL库
    #	提示的错误相似与。找不到qgl.h等有文件
    QWT_CONFIG     += QwtOpenGL
    
    ######################################################################
    # You can use the MathML renderer of the Qt solutions package to 
    # enable MathML support in Qwt. Because of license implications
    # the ( modified ) code of the MML Widget solution is included and
    # linked together with the QwtMathMLTextEngine into an own library. 
    # To use it you will have to add "CONFIG += qwtmathml"
    # to your qmake project file.
    ######################################################################
    #	是否支持QwtMathMl, 是Qwt统计数据的数学库支持
    #
    #
    #QWT_CONFIG     += QwtMathML
    
    ######################################################################
    # If you want to build the Qwt designer plugin, 
    # enable the line below.
    # Otherwise you have to build it from the designer directory.
    ######################################################################
    #	是否支持QwtDesigner, 
    #	
    QWT_CONFIG     += QwtDesigner
    
    ######################################################################
    # Compile all Qwt classes into the designer plugin instead
    # of linking it against the shared Qwt library. Has no effect
    # when QwtDesigner or QwtDll are not both enabled.
    #
    # On systems where rpath is supported ( all Unixoids ) the 
    # location of the installed Qwt library is compiled into the plugin,
    # but on Windows it might be easier to have a self contained
    # plugin to avoid any hassle with configuring the runtime
    # environment of the designer/creator.
    ######################################################################
    
    win32 {
        QWT_CONFIG     += QwtDesignerSelfContained
    }
    
    ######################################################################
    # If you want to auto build the examples, enable the line below
    # Otherwise you have to build them from the examples directory.
    ######################################################################
    #	是否编译演示样例程序
    #	qwt默认不编译演示样例程序,
    #	假设您想编译演示样例, 请取消凝视 
    #QWT_CONFIG     += QwtExamples
    
    ######################################################################
    # The playground is primarily intended for the Qwt development 
    # to explore and test new features. Nevertheless you might find
    # ideas or code snippets that help for application development
    # If you want to auto build the applications in playground, enable 
    # the line below.
    # Otherwise you have to build them from the playground directory.
    ######################################################################
    
    #QWT_CONFIG     += QwtPlayground
    
    ######################################################################
    # When Qt has been built as framework qmake wants 
    # to link frameworks instead of regular libs
    ######################################################################
    
    macx:!static:CONFIG(qt_framework, qt_framework|qt_no_framework) {
    
        QWT_CONFIG += QwtFramework
    }  
    
    好了,理解了编译的流程,我们就能够编译了。我们编译依据qt的版本号(x11, x86, arm)。分别编译出不同版本号的qwt
    ok以下開始构建, 

    建立编译文件夹

    先建立编译文件夹, 我们建立一个qwt-6.1.0文件夹,将qwt源代码qwt-6.1.0-tar.gz复制到这个文件夹下,解压出三个源代码文件夹
    tar -jxvf qwt-6.1.0-tar.gz
    cp -rf qwt-6.1.0  qwt-6.1.0-x11
    cp -rf qwt-6.1.0 qwt-6.1.0-x86
    cp -rf qwt-6.1.0 qwt-6.1.0-arm

    编译X11下的qwt库

    首先改动配置文件
    unix {
        QWT_INSTALL_PREFIX    = /usr/local/qwt-$$QWT_VERSION
    }
    安装文件夹。改动/usr/local为qt-4.8.5-x11的文件夹/opt/qt-4.8.5-x11/
    unix {
        QWT_INSTALL_PREFIX    = /opt/qt-4.8.5-x11/qwt-$$QWT_VERSION
    }
    同一时候将“#QWT_CONFIG     += QwtExamples”这行的凝视取消,由于我们想编译演示样例程序
    其它信息事实上不是必需改动,因此我们前面编译qt-x11时候。QtOpenGL等库也编译了,所以不是必需改动
    接着,qmake+make+make install
    cd qwt-6.1.0-x11
    qmake-x11
    make
    sudo make install

    编译x86下的qwt库

    首先改动配置文件。方法相似上面,

    安装路径改动为/opt/qt-4.8.5-x86/,编译演示样例程序“QWT_CONFIG     += QwtExamples

    注意:须要将QWT_CONFIG     += QwtOpenGL,此选项须要凝视,由于我们没编译x86的QtOpenGL,

    想要知道自己的qt版本号装没装这些库支持。仅仅须要去安扎un个文件夹下的include下查看有没有这些文件夹就能够了

    cd qwt-6.1.0-x86
    qmake-x86
    make
    sudo make install
    

    编译arm下的qwt库

    首先改动配置文件。方法相似上面。

    安装路径改动为/opt/qt-4.8.5-arm/,编译演示样例程序“QWT_CONFIG     += QwtExamples

    注意:须要将QWT_CONFIG     += QwtOpenGL。此选项须要凝视,由于我们没编译arm的QtOpenGL,

    cd qwt-6.1.0-arm
    qmake-arm
    make
    sudo make install

    这样我们qwt的三个不同版本号就编译好了,可是我们发现examples的演示样例程序。仅仅是在源代码包里编译好了。并没有安装到安装文件夹/opt/qwt-6.1.0*下
    也行,我们直接执行几个观察几个效果,编译后演示样例程序在源代码包/examples/bin/,总共24个演示样例程序
    x11的,双击或者./elf后直接,x86的使用qvfb执行,arm的须要先移植qwt库(这个我们稍后再说),然后./elf  -qws执行

    sinusplot显示正弦余弦曲线



    dials指南针挂钟控件演示样例。编译qwt时假设悬赏QWT_CONFIG += qWidgets的话会编译出几个可使用的空间



    在QtCreate中或者Designer中使用qwt的控件

    在x11的源代码包或者安装文件夹下的designer/plugins/desinger/libqwt_designer_plugin.so文件,就是qwt控件的链接库。我们仅仅要把这个库导入QtCreate或者Designer的控件文件夹就能够在QtCreate和Designer中使用qwt的控件了
    在qtCreate中使用qwt控件
    cp /opt/qt-4.8.5-x11/qwt-6.1.0/designer/plugins/desinger/*      $HOME/qtcreate-2.7.2/bin/plugins/designer/
    在Designer中使用qwt控件
    cp /opt/qt-4.8.5-x11/qwt-6.1.0/designer/plugins/desinger/*      /opt/qt-4.8.5-x11/plugins/desinger/
    
    验证一下。打开QtCreate新建一个工程


    执行designer



    眼下发现其它的写的比較好的

    QT5 qtcreator 增加qwt绘图插件



  • 相关阅读:
    java线程
    面向切面编程
    控制反转IOC与依赖注入DI
    phpexecel 导入导出,格式
    PHPExcel设置数据格式的几种方法
    九度oj 题目1416:猴子吃坚果
    九度oj 题目1397:查找数段
    poj 1065 Wooden Sticks
    poj 3181 Dollar Dayz
    poj 1742 Coins
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7008526.html
Copyright © 2011-2022 走看看