交叉编译qwt控件并在Mini2440开发板上运行(Ubuntu12.04 + QtE4.6.3 + qwt6.1.2)
2015-05-17 15:11
453 查看
Windows下编译运行qwt的方法请参阅博主的另一篇文章:
Qt第三方图形控件qwt的编译安装与使用的简单方法(Win7+Qt4.8.6+MinGW4.8.2)
Linux下编译运行qwt的方法请参阅博主的前一篇文章:
Linux下编译并使用Qt第三方图形控件qwt(Ubuntu12.04 + Qt4.8.1 + qwt6.1.2)
交叉编译器版本: arm-linux-gcc-4.4.3-EABI
Qt版本: QtE-4.6.3 + Qt Creator-2.5.0
qwt版本: qwt-6.1.2
地址:http://sourceforge.net/projects/qwt/files/qwt/6.1.2/
配置qwt的安装信息
修改qwt的安装路径。 qwt默认安装在/usr/local/qwt-6.1.2目录下,博主在上一篇文章中已经将一个qwt6.1.2的主机版本安装在默认目录中,因此交叉编译版本需要修改为其他路径。
精简安装内容。 将交叉编译版本不需要的和Mini2440的QtE-4.6.3不支持的模块删去。
具体步骤,打开刚解压缩的qwt-6.1.2源文件目录中的qwtconfig.pri文件:
将第22行的路径修改为QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-Mini2440,交叉编译版本的qwt将会被安装在/usr/local/qwt-6.1.2-Mini2440目录下
将102行的#QWT_CONFIG += QwtOpenGL注释掉,删除OpenGL支持,这是因为Mini2440官方给出的编译QtE-4.6.3的配置文件中未开启OpenGL,否则编译会出现错误: qwt_plot_glcanvas.h:15:17: fatal error: qgl.h: No such file or directorycompiling qwt_abstract_slider.cpp
将121行的#QWT_CONFIG += QwtDesigner注释掉,不编译Designer插件,这是因为Designer插件只能在主机上使用,否则会出现编译错误:qwt_designer_plugin.h:23: Error: Undefined interface
如果想在开发板上测试qwt源文件中提供的example,则将144行的QWT_CONFIG +=QwtExamples注释取消掉即可,这样在稍后make过程中会在example目录下自动生成名为bin的可在mini2440开发板上执行的文件目录
交叉编译、安装qwt
等待片刻即可。
注:
qmake-arm就是QtE4.6.3的qmake程序,由于博主的Ubuntu下还有桌面版本的Qt4.8.1,两个版本的Qt库都加入了系统的PATH环境变量中,因此为了避免冲突,遂将4.8.1版本的qmake重命名为qmake-qt4,将4.6.3版本的qmake重命名为qmake-arm
安装完成后,打开/usr/local路径,可以发现已经自动生成了一个qwt-6.1.2-Mini2440目录,刚才安装的所有文件都在这里。
然后进入设计器界面,随便拖放一个qwt控件到对话框中,点击build进行编译即可。
将刚建立的qtenv脚本文件和Qt应用程序qwt_test文件拷贝到/home/plg目录下,然后执行:
即可成功在后台运行包含qwt控件的Qt程序。
参考资料:
Qwt移植
移植qwt库到arm开发板!!!
Ubuntu12.04交叉编译mini2440提供的QtE4.6.3并测试sqlite3数据库
Linux软连接和硬链接
Qt第三方图形控件qwt的编译安装与使用的简单方法(Win7+Qt4.8.6+MinGW4.8.2)
Linux下编译运行qwt的方法请参阅博主的前一篇文章:
Linux下编译并使用Qt第三方图形控件qwt(Ubuntu12.04 + Qt4.8.1 + qwt6.1.2)
编译环境
主机系统: VMWare + Ubuntu 12.04 (32位)交叉编译器版本: arm-linux-gcc-4.4.3-EABI
Qt版本: QtE-4.6.3 + Qt Creator-2.5.0
qwt版本: qwt-6.1.2
安装步骤
下载qwt源文件并解压至任意目录地址:http://sourceforge.net/projects/qwt/files/qwt/6.1.2/
配置qwt的安装信息
修改qwt的安装路径。 qwt默认安装在/usr/local/qwt-6.1.2目录下,博主在上一篇文章中已经将一个qwt6.1.2的主机版本安装在默认目录中,因此交叉编译版本需要修改为其他路径。
精简安装内容。 将交叉编译版本不需要的和Mini2440的QtE-4.6.3不支持的模块删去。
具体步骤,打开刚解压缩的qwt-6.1.2源文件目录中的qwtconfig.pri文件:
将第22行的路径修改为QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-Mini2440,交叉编译版本的qwt将会被安装在/usr/local/qwt-6.1.2-Mini2440目录下
将102行的#QWT_CONFIG += QwtOpenGL注释掉,删除OpenGL支持,这是因为Mini2440官方给出的编译QtE-4.6.3的配置文件中未开启OpenGL,否则编译会出现错误: qwt_plot_glcanvas.h:15:17: fatal error: qgl.h: No such file or directorycompiling qwt_abstract_slider.cpp
将121行的#QWT_CONFIG += QwtDesigner注释掉,不编译Designer插件,这是因为Designer插件只能在主机上使用,否则会出现编译错误:qwt_designer_plugin.h:23: Error: Undefined interface
如果想在开发板上测试qwt源文件中提供的example,则将144行的QWT_CONFIG +=QwtExamples注释取消掉即可,这样在稍后make过程中会在example目录下自动生成名为bin的可在mini2440开发板上执行的文件目录
交叉编译、安装qwt
[code]cd qwt-6.1.2 qmake-arm qwt.pro make make install
等待片刻即可。
注:
qmake-arm就是QtE4.6.3的qmake程序,由于博主的Ubuntu下还有桌面版本的Qt4.8.1,两个版本的Qt库都加入了系统的PATH环境变量中,因此为了避免冲突,遂将4.8.1版本的qmake重命名为qmake-qt4,将4.6.3版本的qmake重命名为qmake-arm
安装完成后,打开/usr/local路径,可以发现已经自动生成了一个qwt-6.1.2-Mini2440目录,刚才安装的所有文件都在这里。
交叉编译包含qwt控件的Qt工程
在Qt Creator中新建一个包含.ui文件的工程(Qt库选择Embedded版本的QtE-4.6.3),打开pro工程文件,在文件尾部加入如下一段:[code]#qwt setting QWT_ROOT = /usr/local/qwt-6.1.2-Mini2440 #qwt控件安装位置,注意与qwtconfig.pri配置文件配合修改 include ( $${QWT_ROOT}/features/qwt.prf ) #end qwt setting
然后进入设计器界面,随便拖放一个qwt控件到对话框中,点击build进行编译即可。
在Mini2440开发板上运行包含qwt控件的Qt程序
将qwt库文件复制到开发板中
直接将刚才安装的/usr/local/qwt-6.1.2-Mini2440/lib文件夹中的libqwt.so.6.1.2文件拷贝到mini2440开发板中的/usr/local/lib目录下,然后从开发板终端进入目录/usr/local/lib,为qwt库建立3个软连接:[code]cd /usr/local/lib ln -s libqwt.so.6.1.2 libqwt.so.6.1 ln -s libqwt.so.6.1.2 libqwt.so.6 ln -s libqwt.so.6.1.2 libqwt.so
配置Qt程序的运行环境并运行程序
Mini2440开发板中已经具备了Qt程序运行的条件,但是关于Qt程序运行的环境变量却并没有配置在系统中。这里,我们仿照友善之臂qt4脚本的做法(在开发板中直接vi /bin/qt4即可看到),建立一个名为qtenv的脚本文件,其内容如下:
[code]#!/bin/sh export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_CONFFILE=/usr/local/etc/ts.conf export TSLIB_PLUGINDIR=/usr/local/lib/ts export TSLIB_CALIBFILE=/etc/pointercal export LD_LIBRARY_PATH=/usr/local/lib export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin export QWS_DISPLAY=:1 TS_INFO_FILE=/sys/devices/virtual/input/input0/uevent if [ -e $TS_INFO_FILE -a "/bin/grep -q TouchScreen < $TS_INFO_FILE" ]; then export QWS_MOUSE_PROTO="Tslib:/dev/input/event0 MouseMan:/dev/input/mice" if [ ! -s /etc/pointercal ] ; then rm /etc/pointercal /usr/local/bin/ts_calibrate fi else export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice" fi unset TS_INFO_FILE export QWS_KEYBOARD=TTY:/dev/tty1 export HOME=/root cd /home/plg ./$1 -qws hotplug
将刚建立的qtenv脚本文件和Qt应用程序qwt_test文件拷贝到/home/plg目录下,然后执行:
[code]cd /home/plg ./qtenv qwt_test &
即可成功在后台运行包含qwt控件的Qt程序。
参考资料:
Qwt移植
移植qwt库到arm开发板!!!
Ubuntu12.04交叉编译mini2440提供的QtE4.6.3并测试sqlite3数据库
Linux软连接和硬链接
相关文章推荐
- Ubuntu12.04下配置安装Qt4.6.3 及移植到mini2440开发板及其使用全过程
- Linux下编译并使用Qt第三方图形控件qwt(Ubuntu12.04 + Qt4.8.1 + qwt6.1.2)
- Ubuntu12.04下配置安装Qt4.6.3 及移植到mini2440开发板及其使用全过程
- Ubuntu12.04交叉编译mini2440提供的QtE4.6.3并测试sqlite3数据库
- qwt6.0.0交叉编译,在mini2440完美运行
- 交叉编译tslib1.4过程详述,配合QT4.5.3成功在Mini2440运行成功
- 交叉移植tesseract过程记述以及总结(在mini2440开发板上运行成功)
- 在ubuntu12.04上用qvfb运行QtE程序
- 交叉编译QTE源码包 (在PC机上编绎运行于开发板的程序)
- onvif 服务端设备发现在linux上运行不会报错,但是交叉编译运行在嵌入式开发板上是会报错
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- QWT安装配置,控件在Qtcreator中显示 (基于Ubuntu12.04)
- 交叉移植tesseract过程记述以及总结(在mini2440开发板上运行成功)
- QEMU模拟Mini2440开发板运行环境
- QEMU模拟Mini2440开发板运行环境
- ubuntu 11.10 mini2440 qte4.6.3开发环境的建立
- QEMU模拟Mini2440开发板运行环境(二):NFS挂载根文件系统
- qt5.7交叉编译开发板开机运行程序
- 最简单的ARM裸机程序,帮你理解程序的运行启动(mini2440开发板)