linux学习笔记2-在qtcreator上安装qwt插件
----------------------------背景------------------------------------------------------------------------------------
平台:装有fedora17的虚拟机VM
----------------------------------------------------------------------------------------------------------------------
Qwt官方下载地址:http://sourceforge.jp/projects/sfnet_qwt/releases/
下面以qwt-5.2.1为例讲解
--------------------------------qwt的编译及安装----------------------------------------------------------------
步骤一:tar jxvf qwt-5.2.1.tar.bz2 解压qwt-5.2.1.tar.bz2
步骤二:给linux系统添加qmake的临时环境变量,因为系统里有两个版本的qmake,分别为ARM版和X86版。在编译x86版的qwt时需要用x86版的qmake,在编译ARM版的qwt时就需要用到ARM版的qmake,这个非常关键。
1. 编译x86版qwt
添加qmake的临时环境变量,我x86版qmake的路径在/opt/qtsdk-2010.01/qt/bin/,所以执行以下命令
命令:exportPATH=/opt/qtsdk-2010.01/qt/bin/:$PATH
或命令:exportPATH=$PATH:/opt/qtsdk-2010.01/qt/bin/
(说明:通过export添加的换将变量知识临时的,系统重启后,添加的环境变量就没了)
这时可以通过命令echo $PATH来查看系统的环境变量,可以看到/opt/qtsdk-2010.01/qt/bin/排在最前面,这时当执行qmake时,使用的就是/opt/qtsdk-2010.01/qt/bin/下x86版的qmake
步骤三:cd/qwt-5.2.1,进入到解压后的文件夹,执行命令qmake,可以看到执行完qmake后在当前路径下可以看到多了一个文件Makefile。可以用vi打开Makefile,在里面可以看到一条规则QMAKE=/opt/qtsdk-2010.01/qt/bin/qmake,这正是我们通过添加环境变量的效果。当执行make命令时,就会使用/opt/qtsdk-2010.01/qt/bin/下的qmake。从而编译出x86版的qwt。
步骤四:执行命令make,开始编译。大概需要2-3分钟。
步骤五:执行命令makeinstall,安装qwt。打开当前路径下qwt的配置文件qwtconfig.pri,可以看到里面有一条规则指明了安装路径:INSTALLBASE=/usr/local/qwt-5.2.1,这个路径可以根据我们的需要进行改动。
X86板的qwt编译安装到此就完了。
2.编译ARM版的qwt
步骤一:
把qwt-5.2.1.tar.bz2重新解压到另外一个文件夹,我的是解压到qwt-5.2.1-arm,这个很关键,否则在执行make时会与x86版本的.so动态链接库相冲突出。接着再添加ARM版qmake的临时环境变量。我的路径在/usr/local/Trolltech/QtEmbedded-4.7.0-arm/下,所以执行命令:
exportPATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/:$PATH
或命令:exportPATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.7.0-arm/
这时通过命令echo $PATH可以看到排在最前面的是/usr/local/Trolltech/QtEmbedded-4.7.0-arm/,所以在执行qmake是就是执行该路径下的qmake,即ARM版的qmake。
步骤二:由于ARM版的qwt不需要QwtDesigner,所以修改配置文件qwtconfig.pri,将CONFIG+=QwtDesigner这一行注释掉。在编译x86版的qwt不需要注释这行。
步骤三:执行qmake,生成Makefile。
步骤四:执行make,编译ARM版的qwt。
步骤五:执行makeinstall,安装qwt。安装路径依然可以通过qwt的配置文件qwtconfig.pri修改
ARM版的qwt的编译及安装到此结束。
---------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------qwt的使用----------------------------------------------------------------------
下面讲解如何将qwt的控件嵌入到qtcreator中。
执行上述编译步骤后,再次进入qwt-5.2.1(经过x86版qmake编译后的),复制qwt-5.2.1/designer/plugins/designer/下的libqwt_designer_plugin.so文件到/opt/qtsdk-2010.01/qt/plugins/designer/下。再把qwt-5.2.1/lib下的4个文件分别复制到/opt/qtsdk-2010.01/lib下和/opt/qtsdk-2010.01/qt/lib下 。现在重启qtcreator是应该可以看到qwt控件的,但是当我从快捷方式启动qtcreator时,并没有看到qwt控件,这让我百思不得其解。后来通过命令启动,进入到/opt/qtsdk-2010.01/bin下,执行命令./qtcreator启动qtcreator,居然在里面看到了qwt控件,兴奋不已啊!
接下来自己重新建立个快捷方式。方法如下:
#vi /usr/share/applications/QtCreator.desktop
输入以下内容,保存并退出vi即可!(在fedora和ubuntu下建立快捷方式一样,代码如下。为其他应用程序建立快捷方式也是这样的几行代码,稍作改动即可)
[Desktop Entry]
Encoding=UTF-8
Name=QtCreator
Comment=QtCreator
Exec=/opt/qtsdk-2010.01/bin/qtcreator //应用程序qtcreator的路径
Icon=/opt/qtsdk-2010.01/share/pixmaps/qtcreator_logo_256.png //应用程序图标的位置
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
每次就从自己建立的快捷方式启动,就可以看到qwt控件了。
注意:在编写有qwt控件的程序时,需要在工程的.pro文件最后加入两行
INCLUDEPATH += /usr/local/qwt-5.2.1-arm/include/
LIBS +=-L"/usr/local/qwt-5.2.1-arm/lib/" –lqwt
这两行的作用是指定程序中与qwt有关的头文件和动态链接库所在的路径。在编译程序时,编译器会在这两个路径中需找需要的头文件和动态链接库。在写x86程序时,将上面两行换成x86版qwt所在的路径,在写ARM版程序时,换成ARM版qwt的路径即可。上面两行是我ARM版qwt头文件和动态链接库所在的路径。
要想让程序在ARM版上运行起来,还需要把qwt-5.2.1(经过ARM版qmake编译后的)/lib下的4个文件复制到ARM开发板linux系统的lib/下
由于我已编译出了x86版和ARM版的qwt了,以后就不需在编译了。只需按照上文复制文件夹qwt-arm-conpiled,qwt-x86-compiled和qwt-so下的文件到相应的位置即可。
后来我在linux物理机上用上述方法编译安装也成功了!
----------------------------背景------------------------------------------------------------------------------------
平台:装有fedora17的虚拟机VM
----------------------------------------------------------------------------------------------------------------------
Qwt官方下载地址:http://sourceforge.jp/projects/sfnet_qwt/releases/
下面以qwt-5.2.1为例讲解
--------------------------------qwt的编译及安装----------------------------------------------------------------
步骤一:tar jxvf qwt-5.2.1.tar.bz2 解压qwt-5.2.1.tar.bz2
步骤二:给linux系统添加qmake的临时环境变量,因为系统里有两个版本的qmake,分别为ARM版和X86版。在编译x86版的qwt时需要用x86版的qmake,在编译ARM版的qwt时就需要用到ARM版的qmake,这个非常关键。
1. 编译x86版qwt
添加qmake的临时环境变量,我x86版qmake的路径在/opt/qtsdk-2010.01/qt/bin/,所以执行以下命令
命令:exportPATH=/opt/qtsdk-2010.01/qt/bin/:$PATH
或命令:exportPATH=$PATH:/opt/qtsdk-2010.01/qt/bin/
(说明:通过export添加的换将变量知识临时的,系统重启后,添加的环境变量就没了)
这时可以通过命令echo $PATH来查看系统的环境变量,可以看到/opt/qtsdk-2010.01/qt/bin/排在最前面,这时当执行qmake时,使用的就是/opt/qtsdk-2010.01/qt/bin/下x86版的qmake
步骤三:cd/qwt-5.2.1,进入到解压后的文件夹,执行命令qmake,可以看到执行完qmake后在当前路径下可以看到多了一个文件Makefile。可以用vi打开Makefile,在里面可以看到一条规则QMAKE=/opt/qtsdk-2010.01/qt/bin/qmake,这正是我们通过添加环境变量的效果。当执行make命令时,就会使用/opt/qtsdk-2010.01/qt/bin/下的qmake。从而编译出x86版的qwt。
步骤四:执行命令make,开始编译。大概需要2-3分钟。
步骤五:执行命令makeinstall,安装qwt。打开当前路径下qwt的配置文件qwtconfig.pri,可以看到里面有一条规则指明了安装路径:INSTALLBASE=/usr/local/qwt-5.2.1,这个路径可以根据我们的需要进行改动。
X86板的qwt编译安装到此就完了。
2.编译ARM版的qwt
步骤一:
把qwt-5.2.1.tar.bz2重新解压到另外一个文件夹,我的是解压到qwt-5.2.1-arm,这个很关键,否则在执行make时会与x86版本的.so动态链接库相冲突出。接着再添加ARM版qmake的临时环境变量。我的路径在/usr/local/Trolltech/QtEmbedded-4.7.0-arm/下,所以执行命令:
exportPATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/:$PATH
或命令:exportPATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.7.0-arm/
这时通过命令echo $PATH可以看到排在最前面的是/usr/local/Trolltech/QtEmbedded-4.7.0-arm/,所以在执行qmake是就是执行该路径下的qmake,即ARM版的qmake。
步骤二:由于ARM版的qwt不需要QwtDesigner,所以修改配置文件qwtconfig.pri,将CONFIG+=QwtDesigner这一行注释掉。在编译x86版的qwt不需要注释这行。
步骤三:执行qmake,生成Makefile。
步骤四:执行make,编译ARM版的qwt。
步骤五:执行makeinstall,安装qwt。安装路径依然可以通过qwt的配置文件qwtconfig.pri修改
ARM版的qwt的编译及安装到此结束。
---------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------qwt的使用----------------------------------------------------------------------
下面讲解如何将qwt的控件嵌入到qtcreator中。
执行上述编译步骤后,再次进入qwt-5.2.1(经过x86版qmake编译后的),复制qwt-5.2.1/designer/plugins/designer/下的libqwt_designer_plugin.so文件到/opt/qtsdk-2010.01/qt/plugins/designer/下。再把qwt-5.2.1/lib下的4个文件分别复制到/opt/qtsdk-2010.01/lib下和/opt/qtsdk-2010.01/qt/lib下 。现在重启qtcreator是应该可以看到qwt控件的,但是当我从快捷方式启动qtcreator时,并没有看到qwt控件,这让我百思不得其解。后来通过命令启动,进入到/opt/qtsdk-2010.01/bin下,执行命令./qtcreator启动qtcreator,居然在里面看到了qwt控件,兴奋不已啊!
接下来自己重新建立个快捷方式。方法如下:
#vi /usr/share/applications/QtCreator.desktop
输入以下内容,保存并退出vi即可!(在fedora和ubuntu下建立快捷方式一样,代码如下。为其他应用程序建立快捷方式也是这样的几行代码,稍作改动即可)
[Desktop Entry]
Encoding=UTF-8
Name=QtCreator
Comment=QtCreator
Exec=/opt/qtsdk-2010.01/bin/qtcreator //应用程序qtcreator的路径
Icon=/opt/qtsdk-2010.01/share/pixmaps/qtcreator_logo_256.png //应用程序图标的位置
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
每次就从自己建立的快捷方式启动,就可以看到qwt控件了。
注意:在编写有qwt控件的程序时,需要在工程的.pro文件最后加入两行
INCLUDEPATH += /usr/local/qwt-5.2.1-arm/include/
LIBS +=-L"/usr/local/qwt-5.2.1-arm/lib/" –lqwt
这两行的作用是指定程序中与qwt有关的头文件和动态链接库所在的路径。在编译程序时,编译器会在这两个路径中需找需要的头文件和动态链接库。在写x86程序时,将上面两行换成x86版qwt所在的路径,在写ARM版程序时,换成ARM版qwt的路径即可。上面两行是我ARM版qwt头文件和动态链接库所在的路径。
要想让程序在ARM版上运行起来,还需要把qwt-5.2.1(经过ARM版qmake编译后的)/lib下的4个文件复制到ARM开发板linux系统的lib/下
由于我已编译出了x86版和ARM版的qwt了,以后就不需在编译了。只需按照上文复制文件夹qwt-arm-conpiled,qwt-x86-compiled和qwt-so下的文件到相应的位置即可。
后来我在linux物理机上用上述方法编译安装也成功了!