工具:
libQGLViewer-2.7.2
Visual Studio 2013(Uitimate)
QT5.9.1(MSVC2013)
另外在VS中使用QT显示界面需要下载qt-vsaddin-msvc2013-2.2.0.vsix官网下载
环境:
win7旗舰版,64位系统
一、下载libQGLViewer-2.7.2和qt-vsaddin-msvc2013-2.2.0
1、下载libQGLViewer-2.7.2.zip文件后解压。
2、下载qt-vsaddin-msvc2013-2.2.0并配置
因为在VS中编译相对容易,因此qt-vsaddin-msvc2013-2.2.0后在VS中编译pro文件。
根据向导一步步完成qt-vsaddin-msvc2013-2.2.0安装即可。
完成后在QT VS TOOLS打开Qt Options,添加Qt版本名称和路径。
二、用VS编译QGLViewer
1 打开VS2013——Qt VS Tools——Open Qt Project File (.pro)…
选择 D:\libQGLViewer-2.7.2\libQGLViewer-2.72.pro
2 选择QGLViewer,右键,仅用于项目,仅生成QGLViewer(B)
在D:\libQGLViewer-2.7.2\QGLViewer(可在属性中修改生成目录)中生成了静态库和动态库等。
注意调整Debug和Release,从而生成不同的文件。
三、QGLViewer控件
若想使用QT界面中使用QGLViewer的控件,则同样需要编译qglviewerplugin。
1、选择qglviewerplugin,右键,仅用于项目,仅生成qglviewerplugin (B)。
在D:\libQGLViewer-2.7.2\designerPlugin\release(可在属性中修改生成目录)中生成了静态库和动态库
2、安装控件
2.1将QGLViewer编译生成的库复制到C:\Windows\System32和C:\Windows\SysWOW64
如果不放入system32文件夹中,在QT designer界面会无法显示QGLViewer控件
2.2将qglviewerplugin.dll和qglviewerplugin.lib复制到
D:\QT\Qt5.9.1\5.9.1\msvc2013_64\plugins\designer
和D:\QT\Qt5.9.1\Tools\QtCreator\bin\plugins\designer
完成后即可在VS的QT设计界面找到QGLViewer控件
四、在VS中新建可用QGLViewer的项目
1、在VS中新建Qt项目
2、设置Qt插件
注意务必勾选OpenGL和XML,否则会报无法找到QGL等错误
3、在VS中配置QGLViewer
在属性管理器中新建属性表并命名,并注意跟Debug或Release匹配。
打开属性表的属性,在通用属性的C++目录中设置包含目录和库目录
包含目录为:D:\libQGLViewer-2.7.2
库目录为:D:\libQGLViewer-2.7.2\QGLViewer
在链接器的输入中,增加附加依赖项
QGLViewerd2.lib(Debug属性表下)/QGLViewer2.lib(Release属性表下)
qtmain.lib
Qt5Core.lib
Qt5Gui.lib
Qt5Widgets.lib
Qt5Xml.lib
Qt5OpenGL.lib
opengl32.lib
glu32.lib
如果没有包含目录则报错:
如果没有包含库目录则报错:
五、完成配置
在UI中添加QGLViewer控件,运行程序即可。
补充:
QGLViewer插件若需要在Qt Creator上显示需要:
1、编译QGLViewer和designerPlugin时的编译器版本与Qtcreator版本一致。即需要用32位MSVC2015 来编译QGLViewer和designerPlugin才可以在Qt Creator中显示控件。
2、使用时需要保证QGViewer和designerPlugin是同版本的编译器编译得到的。
3、先在realease和dubge模式下生成QGLViewer,然后编译realease模式下的designerPlugin(不需要debug模式编译designerPlugin)
4、在VS中用低版本Qt编译QGLViewer的pro文件时可能会报错,是因为低版本QT没有OPENGL库导致的,解决方法为在Qt project setting中勾选OpenGL和XML。(这里有个bug就是部分笔记本电脑上勾选后没有确定的按钮,只需要勾选后键盘按下回车即可)
错误总结:
1、找不到文件
解决方式:
在pro中添加QGLViewer解压后的路径
INCLUDEPATH += D:/libQGLViewer-2.7.2\
2、无法解析的外部符号
有这种错误基本是因为没有包含库文件,这里包含opengl库文件即可:
CONFIG(debug,debug|release){
LIBS += -LD:/libQGLViewer-2.7.2/QGLViewer\
-lQGLViewerd2
LIBS += -lopengl32 \
-lglu32
}else {
LIBS += -LD:/libQGLViewer-2.7.2/QGLViewer\
-lQGLViewer2
LIBS += -lopengl32 \
-lglu32
}
3、QDomElement、GL等路径找不到
这种错误是因为没有包含opengl 和xml模块,在pro起始处包含即可
QT += core opengl xml gui widgets
4、出现glBegin等函数报错
cpp文件中添加相关头文件即可
#include <QGLViewer/qglviewer.h>
#include <qgl.h>
参考文章:
https://blog.csdn.net/xinjiang666/article/details/103646305
https://blog.csdn.net/GreenHandCGL/article/details/85060035
https://blog.csdn.net/qq_30547073/article/details/78954592