Qwt移植到S3C6410


有一哥们问到关于qwt移植的问题,我就自己动手做了一下,发现还是比较容易的,示例程序也编译通过了,现在将移植的过程记录一下。

首先要说明一点的是在这之前,我的Qt-4.7.3已经移植成功了,这里做的就是移植qwt并且在板子上测试示例程序。

第一步:下载最新的qwt源码,主页在这里,我下载的是qwt-6.0.1.tar.bz2

第二步:解压源码,进入源码目录,我们来看看里面的文件,主要是两个一个是README和INSTALL,其中前者是关于这个项目的一些介绍,后者是针对不同平台编译安装的方法,里面有这样一句:The easiest way to build Qwt is from the command line - but you insist on using an IDE don't forget the "make install" step.就是说如果你用IDE(例如Qt Creator)来编译的话,编译成功后不要忘了在终端进入源码目录执行$ make install命令进行安装。当然,如果你也可以一直在终端编译和安装不必借助IDE。

第三步:我们这里借助IDE编译,打开Qt Creator后打开qwt的工程,要编译ARM版本的,那么你就必须在Qt Creator中进行相关的设置,也就是添加一个工具链,如果有需要的话请留言,我可以截图写出具体的设置步骤。

第四步:我们来进行编译,点击 Build ALL,编译的过程中会报错,是关于一些Designer的头文件找不到,因为qwt自定义了一些designer的插件,方便我们进行开发,所以需要一些Qt Designer的头文件,由于我有qt源码,所以这个还是比较好添加进去的,可是到最后又报错:说是不能连接到Designer库,我到我电脑上安装的qt目录下找了一下,发现X86版本的Qt的lib目录下是有这些库文件的,而在电脑上安装的ARM版本的Qt里面lib目录下并没有这些库文件,这就无奈了,刚好我要的就是ARM版本的阿。后来我仔细一想,源于Qt Designer的插件应该只是在电脑上用来做开发的,而不是在板子上运行的,也就是说这部分内容在板子上压根就不需要,所以,我打开qwtconfig目录下的qwtconfig.pri配置文件,想屏蔽designer的编译。在qwtconfig.pri文件的第102行,有这条语句:

QWT_CONFIG     += QwtDesigner  

这就是我要屏幕的内容,呵呵加“#”注释掉。然后再编译就通过了,接着进入到终端下执行make install就可以发现已经安装了,默认的安装目录在哪里呢,还是看一下qwtconfig.pri配置文件,在第22行有:

QWT_INSTALL_PREFIX    = /usr/local/qwt-$QWT_VERSION  

这就是默认的安装目录,可以自行修改,但是建议修改之后重新进行编译再安装。安装好了之后进入安装目录发现示例程序并没有编译,我们再次看看配置文件,发现在第108行有:

# QWT_CONFIG     += QwtExamples  

这就是说工程默认是不编译示例程序的,要编译的话,就去掉注释,OK,编译完后会在qwt-6.0.1/examples目录下生成bin目录,下面就都是示例程序。

接下来,我们在板子上测试,只需要将安装目录下的lib子目录下的几个库文件拷贝到板子文件系统的Qt的默认库路径下,然后将编译出来的示例程序也拷贝下去。

我们烧写新的文件系统,开机,运行程序,一切OK,无图无真相,这里我就上几个图:

Qwt移植到S3C6410
Qwt移植到S3C6410

呵呵,移植工作到这里就完成了。

但是我们如果要在电脑上利用qwt来开发的话也必须有相应的库文件,所以我们要编译出一个qwt的X86版本,这个版本不必注释designer部分,直接编译就会通过,然后将生成的库文件拷到电脑上Qt库文件目录下,将生成的designer的插件拷贝到$(QTDIR)/plugins/designer目录下,启动designer就可以看到qwt的插件了,截图如下:

Qwt移植到S3C6410

也可以编译出X86的示例程序,运行如下:

Qwt移植到S3C6410
Qwt移植到S3C6410
Qwt移植到S3C6410

好了,就到这吧!

相关内容