前言
在NetBeans中建立QT工程,并使用到opencv
系统:CentOS
一、安装QT5.9.1
准备好安装文件qt-opensource-linux-x64-5.9.1.run
,大小1G,打开终端直接./qt-opensource-linux-x64-5.9.1.run
安装即可
注册一下
安装路径我的是:/opt/Qt5.9.1
安装组件我全选了,大概3.2G。
安装时间挺久的,二三十分钟。
二、在NetBeans中新建QT工程
1.设置一下Qmake
设置NetBeans–Tools–Options–C/C+±-Build Tools–GNU–QMake Command
添加qmake,位置是安装文件夹下/opt/Qt5.9.1/5.9.1/qcc_64/bin/qmake
2.cannot find -lGL错误
这是因为 Qt 找不到 OpenGL 的动态链接库(libGL.so)。
Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录,另外,Linux 发行版自带的 OpenGL 链接库在后缀中添加了版本号,例如 libGL.so.1、libGL.so.1.2.0、libGL.so.1.3.1 等,但是 Qt 在链接阶段查找的 OpenGL 链接库是不带版本号的。
所以,我们需要在 /usr/lib/ 目录下为 OpenGL 链接库创建一个链接,并去掉版本号。
先locate libGL
查找libGL.so
文件,然后ln -s
建立一个软链接。
[tron@localhost ~]$ locate libGL
巴拉巴拉很多。。。
/opt/Qt5.9.1/Tools/QtCreator/lib/qtcreator/libGLSL.so.4.3.1
/opt/Qt5.9.1/Tools/QtCreator/lib/qtcreator/plugins/libGLSLEditor.so
/opt/google/chrome/libGLESv2.so
/opt/google/chrome/swiftshader/libGLESv2.so
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.1.7.0
/usr/lib64/libGLESv1_CM.so.1
/usr/lib64/libGLESv1_CM.so.1.2.0
/usr/lib64/libGLESv2.so.2
巴拉巴拉很多。。。
[tron@localhost ~]$ sudo ln -s /usr/lib64/libGL.so.1.7.0 /usr/lib/libGL.so
[sudo] password for tron:
[tron@localhost ~]$
解决
3./usr/bin/ld: 找不到opencv库文件
之前opencv的路径都设置好了,在NetBeans中也都可以使用,建立C/C++ QT工程
忽然找不到库文件,看了半天才发现NetBeans中的C/C++工程
和C/C++ QT工程
的属性中的链接器设置栏有点不一样
C/C++工程
是这样,之前一直用additional library directories
然后在Libraries
下add library...
而C/C++ QT工程
只提供了runtime search directories
,所以添加库的时候需要添加库文件add library files...
参考
这个QT教程挺好的,可以参考学习。