目需要根据实时数据绘制出图表,因此我们找到了qwt库,这个库是一个绘制图表,曲线图,柱状图的统计图标。。。。
下面我们就详细讲解一下这个库在Larm上的编译和移植
################################################################
# 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
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
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
}
cd qwt-6.1.0-x11
qmake-x11
make
sudo make install
首先修改配置文件,方法类似上面,
安装路径修改为/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
首先修改配置文件,方法类似上面,
安装路径修改为/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
cp /opt/qt-4.8.5-x11/qwt-6.1.0/designer/plugins/desinger/* $HOME/qtcreate-2.7.2/bin/plugins/designer/
cp /opt/qt-4.8.5-x11/qwt-6.1.0/designer/plugins/desinger/* /opt/qt-4.8.5-x11/plugins/desinger/
验证一下,打开QtCreate新建一个工程
目前发现其他的写的比较好的