开发板环境:
天嵌开发板 TQ210 Linux+qt系统
交叉编译器 :4.4.6
Qwt版本:qwt-6.1
PC环境:
ubuntu12.04 64位
a)、进入qwt源码目录,使用x86版本的qt来编译qwt,注意用qmake -v命令来查看qt的版本,确保是x86的qt。
b)、qmake
make
make install
c)、默认生成的库的路径为/usr/local/qwt-6.1.1-svn/
d)、将编译生成的/usr/local/qwt-6.1.1-svn/plugins/designer/libqwt_designer_plugin.so库文件拷贝到qt-x86的安装路径下的plugins/designer目录下。
e)、另外,将qwt生成的/usr/local/qwt-6.1.1-svn/lib/下的库文件,拷贝到qt-x86的安装目录下的lib目录中。
f)、重新打开qtcreator的ui设置界面designer,可以看到控件新添加了Qwt Widgets这一栏。
h)、编译带qwt的程序时,需要在工程文件中添加qwt的头文件目录及相关的库,具体实现为在*.pro文件中添加类似如下代码(其中路径按读者实际情况而定):
INCLUDEPATH += /usr/local/qwt-6.1.1-svn/include
LIBS += -L"/usr/local/qwt-6.1.1-svn/lib" -lqwt
a)、进入源码目录,编辑qwtconfig.pri文件,找到如下语句,将其屏蔽(加#号):
QWT_CONFIG += QwtDesigner
qwt_symbol.cpp:20:26: fatal error: qsvgrenderer.h: No such file or directory compilation terminated.
#QWT_CONFIG += QwtSvg
#QWT_CONFIG += QwtPlayground
c)、若出现如下错误:
qwt_plot_glcanvas.h:15:17: fatal error: qgl.h: No such file or directory compilation terminated.
则是arm-qt没有opengl的支持,需屏蔽qwtconfig.pri中的
#QWT_CONFIG += QwtOpenGL
d)、make&make install 开始编译
#include( $${PWD}/../examples.pri ) (ps:这里屏蔽了第一句)
TARGET = barchart
INCLUDEPATH += /opt/qwt-6.1_arm/__install/include (ps:添加头文件途径)
SOURCES += \
barchart.cpp \
main.cpp
HEADERS += \
barchart.h
LIBS += -L"/opt/qwt-6.1_arm/__install/lib" -lqwt (ps:添加库)
完成后,保存,使用arm-qt中的qmake执行qmake命令,生成Makefile文件,然后再make生成可执行程序,将生成的可执行程序拷贝到开发板的linux文件系统,并将qwt的arm版本的库拷贝到文件系统上的/opt/PDA/lib目录下,然后执行./barchart -qws。
qwt源码包