由于工作学习的需要,要用opengl绘制显示些模型动画,原来用的是Qt做UI,直接调用的是QGLWidget类,但这个只是提供了基本的框架,很多交互操作还需添加代码完成,自己偷懒也觉得繁琐,就借用了开源的工具库QGLViewer,下面是自己的编译安装过程。
开发环境:
Windows 7 64bit
VS2012
Qt 5.2.1 for Windows 64-bit (VS 2012, OpenGL, 553 MB)
Visual Studio Add-in 1.2.3 Alpha for Qt5
libQGLViewer 2.5.0
执行下面步骤的前提是已经装好Qt和其对应的VS插件
步骤1——下载libQGLViewer库,解压缩
步骤2——编译libQGLViewer库
打开VS2012,点击菜单项 QT5->Open Qt Project File,选择步骤1 解压的路径\QGLViewer\QGLViewer.pro, 然后编译即可。编译成功后可在 QGLViewer\x64\Release目录下找到 QGLViewer2.dll 和 QGLViewer2.lib,这就是以后需要调用的动态库和静态库文件。 如果需要调试可以在debug模式下再编译一次,这时得到的是QGLViewerd2.dll 和 QGLViewerd2.lib。
步骤3——测试自带examples(以simpleViewer为例)
i)仍旧通过VS2012中的QT5菜单项打开simpleViewer.pro,编译会报如下错误
![](https://images0.cnblogs.com/blog/573620/201402/112156365465658.png)
这是由于程序找不到静态库,根据提示用文本格式打开simpleViewer.pro文件,替换路径C:\Windows\System32为QGLViewer2.lib所在目录。另外把QGLViewer2.dll所在目录添加到系统环境变量中或者将dll复制到C:\Windows\System32和C:\Windows\SysWOW64中。
ii)重新按i)执行,又出现如下错误:
![](https://images0.cnblogs.com/blog/573620/201402/112216217909225.png)
这是程序入口错误造成的,选择工程Properties->Linker->Advanced,在Entry Point中添加mainCRTStartup,再编译运行,成功通过。
![](https://images0.cnblogs.com/blog/573620/201402/112230548798789.png)
步骤4-编译安装QGLViewerPlugin
为了绘制UI方便,该库还提供了可以在Qt Designer中拖放的插件。 打开VS2012,点击菜单项 QT5->Open Qt Project File,选择步骤1 解压的路径\designerPlugin\designerPlugin.pro, 然后编译即可(记得替换路径C:\Windows\System32为QGLViewer2.lib所在目录)。编译成功后可在 designerPlugin\x64\Release目录下找到 qglviewerplugin.dll 和 qglviewerplugin.lib,这就是以后需要调用的动态库和静态库文件。 复制qglviewerplugin.dll 到 D:\Qt\Qt5.2.1\5.2.1\msvc2012_64_opengl\plugins\designer(注意替换成你所对应的路径下)即可。打开 Qt Designer可以看到插件QGLViewer已安装成功。
![](https://images0.cnblogs.com/blog/573620/201402/132337184814512.png)
网上讲的都不是太全
我来说说把~
首先感谢这位大神:
chenwk891:http://blog.csdn.net/chenwk891/article/details/42171495#reply
还參考了这三个站点:
百度经验:http://jingyan.baidu.com/article/1709ad80b673f34634c4f0ac.html
libQGLViewer官网:http://libqglviewer.com/installWindows.html
CGAL 4.6.1 - Manual:http://doc.cgal.org/latest/Manual/installation.html
最后在VS2013下安装了 boost_1_58_0 + CGAL-4.6.1 +CMake + libQGLViewer-2.6.3
好吧開始把。。
。。
本教程须要配置的环境变量:
PATH里加入:
D:\CGAL\CMake\bin;
D:\CGAL\CGAL-4.6.1\auxiliary\gmp\lib;
D:\CGAL\CGAL-4.6.1\vs2013-build\bin;(vs2013-build是自己建的目录)
D:\CGAL\libQGLViewer-2.6.3\QGLViewer
新建QGLVIEWERROOT:(安装CGAL的3D包时须要)
D:\CGAL\libQGLViewer-2.6.3\QGLViewer
本教程须要的文件能够从这里下载:
http://pan.baidu.com/s/1e5EHK
1、先装boost
http://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/
依据自己的VS版本号下载boost,我的是VS2013,选择 VC12.0的那个下载。
点exe安装即可了。
2、安装CGAL
如百度经验里所看到的,选择32bit,但不一定要装在C盘。其它安装过程照做。
3、安装libQGLViewer-2.6.3
这个仅仅有须要用CGAL的3D功能时才要装,仅仅用2D的话能够跳过。
或者能够用libQGLViewer-2.6.3作为QT creator的 3d画图窗体插件。
这个主要是參考官网弄的。
我是用qt creator 直接编译的,打开D:\CGAL\libQGLViewer-2.6.3\QGLViewer里的 QGLViewer.pro 直接编译
应该就出来QGLViewer2.dll、QGLViewer2.lib(release版)和 QGLViewerd2.dll、QGLViewerd2.lib
(debug版)
了
将dll拷贝至系统目录 32位是C:\Windows\System32,64位是C:\Windows\SysWOW64两个都拷贝一下也成
为qt creator安装designer plugin: QGLViewer widget
打开 D:\CGAL\libQGLViewer-2.6.3\designerPlugin 下的 designerPlugin.pro 直接编译
将生成的qglviewerplugin.dll拷贝至你的qt文件夹下D:\Qt\5.4\msvc2013_64_opengl\plugins\designer
将QGLViewer2.dll拷贝至D:\Qt\5.4\msvc2013_64_opengl\bin
4、用CMake安装编译CGAL
这一步是最坑的。
先装cmake(按百度经验装吧)
我的CGAL装在:D:\CGAL\CGAL-4.6.1
在里面建一个目录:D:\CGAL\CGAL-4.6.1\vs2013-build
打开cmake,
source code 填 D:\CGAL\CGAL-4.6.1
build the binaries 填 D:\CGAL\CGAL-4.6.1\vs2013-build
点configure
第一次报错,在CMake里改动Boost->Boost_INCLUDE_DIR 路径,我的是 D:\CGAL\boost_1_58_0
点configure
第二次报错,点击CMak里面的Add Entry手动加上变量名Boost_LIBRARY_DIR,选择Value Type为PATH,并增加路径。我的是
D:\CGAL\boost_1_58_0\lib32-msvc-12.0
点configure
这下应该就好了。点generate。
假设你想用CGAL的3D库,选中WITH->WITH_demos
点configure
第三次报错,点击CMak里面的Add Entry继续加入3个变量
QT_INCLUDE_DIR ,选择Value Type为PATH,并增加路径,我的是 D:/Qt/5.4/msvc2013_64_opengl/include
QT_LIBRARY_DIR。选择Value Type为PATH,并增加路径。我的是 D:/Qt/5.4/msvc2013_64_opengl/lib
QT_QMAKE_EXECUTABLE,选择Value Type为FILEPATH,并增加路径,我的是D:/Qt/5.4/msvc2013_64_opengl/bin/qmake.exe
点configure
这下3D的也能够configure成功了。点generate。
这里的Add Entry变量都是參考http://doc.cgal.org/latest/Manual/installation.html
5.、在Visual Studio下编译CGAL库
在D:\CGAL\CGAL-4.6.1\vs2013-build 路径下打开CGAL.sln。分别在Debug和Release下编译,生成全部所需库。
6、调用:
请參考chenwk891:http://blog.csdn.net/chenwk891/article/details/42171495#reply
和百度经验 :http://jingyan.baidu.com/article/1709ad80b673f34634c4f0ac.html
qt的调用就不说了- -