写在前面
在安装Qwt前一定确保Qt已经安装和配置完成(如果带有交叉编译版本,也一定确认好可以顺利编译和在板上运行)
开始安装
下载源码
直接下载Qwt源码,我下载的是6.1.2版本
官方地址:
https://sourceforge.net/projects/qwt/
注意:如果用QtCreator5.5.0版本以上的,如果不是用最新版本的Qwt那么在编辑窗口模式下看不到Qwt的控件
但是如果你的qt安装的就是5.5以上的(我的就是qt5.9.5),也不要着急,我们还是有办法在qtdesigner中正常显示的。
可以先去看我的这篇文章了解一下:https://blog.csdn.net/whstudio123/article/details/104590241
下载完成后解压,我解压到桌面上了。
PC版安装
1.使用gedit打开qwtconfig.pri文件,我们来看看这些重点设置项,需要改什么:
(笔者个人建议:与你的ARM运行环境设置成一致,这样代码移植性会好一些)
1.qwt的安装目录
unix {
QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION
# QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION
}
默认就是这个,pc版我就保持默认了,但稍后装ARM版注意,ARM版的一定要改目录,否则两个库就混一块去了
2.根据PC与ARM一致原则设置一些config,在前面加#代表关闭,只想在PC上装的根据自己需要设置。
关闭shared lib
#QWT_CONFIG += QwtDll
关闭opengl
#QWT_CONFIG += QwtOpenGL
打开qtDesigner
QWT_CONFIG += QwtDesigner
examples无所谓,我给关了
#QWT_CONFIG += QwtExamples
playground也无所谓,我给关了
#QWT_CONFIG += QwtPlayground
3.执行qmake以生成Makefile
进入终端(不需要root),切换到当前的目录,使用PC端qt的qmake生成makefile
cd /home/pibot/Desktop/qwt/qwt-6.1.2
/opt/Qt5.9.5/5.9.5/gcc_64/bin/qmake
4.执行make,sudo make install
make
sudo make install
会编译安装一段时间,稍候。编译的时候可能会报一些warning,只要编译不停,可以忽略掉。
编译安装后,去/usr/local/看下相关的文件是不是都到位了。我的长这样
5.加入到qtcreator中
plugins/designer目录下有个.so文件,我们把它复制到qt的指定目录中,这样才能在qt中以拖拽的形式布置控件。
我的复制到
/opt/Qt5.9.5/Tools/QtCreator/bin/plugins/designer
/opt/Qt5.9.5/5.9.5/gcc_64/plugins/designer
这两个目录中,如果发现没有第一个目录就新建出来。
到这里PC端的安装就基本结束了。但有几点要注意
1.在需要使用qt时候一定要先导出这一条:
export LD_LIBRARY_PATH=/usr/local/qwt-6.1.2/lib:$LD_LIBRARY_PATH
可以在qtcreator.sh中修改,然后通过脚本启动qt,我的长这样
2.用qwt的时候要在项目的pro里面加上这个:
QT += svg
#svg是qwtplot中部分控件会用到的,建议加上
INCLUDEPATH += /usr/local/qwt-6.1.2/include
LIBS += -L/usr/local/qwt-6.1.2/lib -lqwt
请根据实际情况修改。
ARM版安装
只要PC安装成功,ARM版就照葫芦画瓢,基本就没问题。
原来的解压到桌面的文件夹删掉吧,我们再解压一份到桌面
1.使用gedit打开qwtconfig.pri文件,我们来看看这些重点设置项,需要改什么:
1.qwt的安装目录
unix {
QWT_INSTALL_PREFIX = /usr/local/qwt-6.1.2-ARM
# QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION
}
这里我修改为/usr/local/qwt-6.1.2-ARM ,名称不一定是这个但一定要修改,要不然就装一起去了!
2.根据PC与ARM一致原则设置一些config,在前面加#代表关闭,只想在PC上装的根据自己需要设置。
注意!!ARM端的qtDesigner 选项一定关闭!其它选项按需选择,我这样做的
关闭shared lib
#QWT_CONFIG += QwtDll
关闭opengl
#QWT_CONFIG += QwtOpenGL
关闭qtDesigner
#QWT_CONFIG += QwtDesigner
examples无所谓,我给关了
#QWT_CONFIG += QwtExamples
playground也无所谓,我给关了
#QWT_CONFIG += QwtPlayground
3.执行qmake以生成Makefile
进入终端(不需要root),切换到当前的目录,使用交叉编译工具链里的qmake生成makefile
cd /home/pibot/Desktop/qwt/qwt-6.1.2
/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
4.执行make,sudo make install
(这里可能还要告诉终端交叉编译工具链的位置,这个我不清楚,但我习惯做交叉的工作前source:
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi )
make
sudo make install
会编译安装一段时间,稍候。编译的时候可能会报一些warning,只要编译不停,可以忽略掉。
编译安装后,去/usr/local/看下相关的文件是不是都到位了。我的长这样
5.到这里ARM端的安装也基本结束了。但有几点要注意
1.在需要使用qt时候也一定要先导出这一条:
export LD_LIBRARY_PATH=/usr/local/qwt-6.1.2-ARM/lib:$LD_LIBRARY_PATH
可以在qtcreator.sh中修改,然后通过脚本启动qt,我的长这样
2.用qwt的时候要在项目的pro里面加上这个:
QT += svg
#svg是qwtplot中部分控件会用到的,建议加上
INCLUDEPATH += /usr/local/qwt-6.1.2-ARM/include
LIBS += -L/usr/local/qwt-6.1.2-ARM/lib -lqwt
请根据实际情况修改。
部分问题及解决
1.qtcreator中看不到qwt控件:
https://blog.csdn.net/whstudio123/article/details/104590241
2.qtcreator 显示与svg有关的错误:
.pro文件里加入
QT += svg
3.qtcreator 显示与opengl的错误:
在mainwindow.h 、main.cpp和mainwindow.cpp加上这个宏就好了
#define QT_NO_OPENGL_ES_3