天嵌科技 ARM开发社区

 找回密码
 注册
查看: 16512|回复: 20

Qwt移植

[复制链接]
TQ-lkp 发表于 2014-3-13 17:35:11 | 显示全部楼层 |阅读模式
   QWT库包含GUI组件以及为具有技术背景的程序中很有用的工具类。旁边的二维框架绘制它提供了尺度,滑块,刻度盘,指南针,温度计,车轮和旋钮来控制或显示值,数组或double类型的范围。

    为了论坛的健康发展,请大家回复后查看,后续所发移植过程全部需要5个金币才能查看,希望大家多多回复坛友的问题从而挣取金币,否则你可能会因为金币不够而无法查看一些重要的帖子!
    开发板环境:TQ210 Linux+qt系统
    交叉编译器 :arm-linux-gcc 4.4.6
    Qwt版本:qwt-6.1

    PC端环境:ubuntu12.04 64位


  • 让PC 上的qtcreator有qwt的控件,所以需要编译一个x86版本的qwt。
  • 进入qwt源码目录,使用x86版本的qt来编译qwt,注意用qmake -v命令来查看qt的版本,确保是x86的qt。
  • qmake
  • make
  • make install
  • 默认生成的库的路径为/usr/local/qwt-6.1.1-svn/
  • 将编译生成的/usr/local/qwt-6.1.1-svn/plugins/designer/libqwt_designer_plugin.so库文件拷贝到qt-x86的安装路径下的plugins/designer目录下。
  • 另外,将qwt生成的/usr/local/qwt-6.1.1-svn/lib/下的库文件,拷贝到qt-x86的安装目录下的lib目录中。
  • 重新打开qtcreator的ui设置界面designer,可以看到控件新添加了Qwt Widgets这一栏。
  • 编译带qwt的程序时,需要在工程文件中添加qwt的头文件目录及相关的库,具体实现为在*.pro文件中添加类似如下代码(其中路径按读者实际情况而定):
      
  • INCLUDEPATH += /usr/local/qwt-6.1.1-svn/include
  • LIBS += -L"/usr/local/qwt-6.1.1-svn/lib" -lqwt


2. 编译arm版本的qwt。
  • 进入源码目录,编辑qwtconfig.pri文件,找到如下语句,将其屏蔽(加#号):QWT_CONFIG     += QwtDesigner
  • 出现如下错误:qwt_symbol.cpp:20:26: fatal error: qsvgrenderer.h: No such file or directory compilation terminated. 则是arm-qt编译的时候没有添加svg的支持,这时要在qwtconfig.pri文件中屏蔽掉如下两句:#QWT_CONFIG     += QwtSvg#QWT_CONFIG     += QwtPlayground
  • 出现如下错误: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这句话。
  • make编译完成
  • make install  注意install的路径,默认为/usr/local/qwt-6.1.1-svn/,可在qwtconfig.pri中的 QWT_INSTALL_PREFIX修改。
  • 编译测试程序,编译方法与x86编译方法类似,不同的是qmake的选择,包含的头文件路径及库路径的不同。
  • 编译qwt源码中examples文件夹中的例程(注意,如遇到找不到qgl.h的错误,则是arm-qt没编译opengl的支持,需在示例代码中将opengl部分去除)。


3. 编译qwt源码中的实例程序barchart(路径:源码目录中的examples/barchart)
进入barchart,用qtcreator打开该工程,编辑barchart.pro如下

#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。执行效果如下:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
zjhsucceed_329 发表于 2014-3-15 13:55:40 | 显示全部楼层
自己以前移植过,感觉有的地方用起来不方便。
ZWJ108 发表于 2014-3-18 11:03:13 | 显示全部楼层
我正要用                                 
wang8y8y 发表于 2014-3-18 16:08:13 | 显示全部楼层
fdasfasfadsfasfasfas
luowei3 发表于 2014-3-20 22:44:24 | 显示全部楼层
哎  来看看
496812749 发表于 2014-3-22 10:29:37 | 显示全部楼层
qet是个好东西
ZWJ108 发表于 2014-3-25 14:37:33 | 显示全部楼层
/plugins/designer/libqwt_designer_plugin.so

我make install 后没有这个目录啊  我配置文件这句话 也没屏蔽掉啊
ZWJ108 发表于 2014-3-25 14:44:06 | 显示全部楼层
ZWJ108 发表于 2014-3-25 14:37
/plugins/designer/libqwt_designer_plugin.so

我make install 后没有这个目录啊  我配置文件这句话 也 ...

arm  下把那句话给屏蔽掉啦
AdairSweet 发表于 2014-5-13 19:26:21 | 显示全部楼层
Qwt自带的例子交叉编译后传到开发板中运行没反应?
http://www.armbbs.net/forum.php? ... &extra=page%3D1
沙漠里被雨困 发表于 2014-8-4 18:58:43 | 显示全部楼层
正好要用到 按着楼主的步骤操作下
zq_shan 发表于 2014-12-11 12:35:23 | 显示全部楼层
尝试中,还有错误,
QWidget: Must construct a QApplication before a QPaintDevice
Aborted
请问这怎么解决
徐西洋 发表于 2015-4-28 13:20:01 | 显示全部楼层
make[1]: Entering directory `/home/linux/qwt-6.0.1/src'
compiling qwt_abstract_scale_draw.cpp
In file included from qwt_abstract_scale_draw.h:13:0,
                 from qwt_abstract_scale_draw.cpp:10:
qwt_global.h:13:21: fatal error: qglobal.h: No such file or directory
compilation terminated.
make[1]: *** [obj/qwt_abstract_scale_draw.o] Error 1
make[1]: Leaving directory `/home/linux/qwt-6.0.1/src'
make: *** [sub-src-make_default-ordered] Error 2


这是咋回事啊
vv000 发表于 2015-7-8 10:05:19 | 显示全部楼层
看看呢,学习
斑马斑马 发表于 2015-11-23 21:09:53 | 显示全部楼层
哈哈哈哈哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|天嵌科技 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2021-7-31 20:51 , Processed in 1.093750 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表