QGLViewer+VS2013+QT5.5 X64排坑文档(转)

 

2018年01月02日 18:47:01

阅读数:325

丁叔叔就是喜欢在代码前线摸爬滚打,排坑的过程相当痛苦,成果出来的时候有趣而充满乐趣。有一种:啊,门打开了,可算可以松口气的感觉。

不这样用成就感麻痹自己的话,哪天真的会打穿电脑的吧……

 本文代码以及教程已经打包好了,传送门如下:

http://download.csdn.net/download/qq_30547073/10184924

如果你没有积分,那我们还有免费的网盘链接:

链接:https://pan.baidu.com/s/1i5MRSbF 密码:ku8f

那么嘿嘿,转载的话,也请著明出处吧,虽然我知道这么垃圾的文章不会有人转载的嘿嘿

http://blog.csdn.net/qq_30547073/article/details/78954592

实在不知道怎么弄的孩纸们还可以加我QQ共同探讨: 498771026

下面是QGLViewer的排坑笔记。

为毛要搞这个东西呢?因为CGAL要用。CGAL需要用两个第三方库,一个是boost,另一个就是QGLViewer。结果一天下来,CGAL半点没学,倒是让我把这个宝贝捣鼓出来了。

后来发现QGLViewer这个东西可以进行显示、交互。它集成和封装了opengl的函数,很少几句代码就可以制造一个完美的可视化工具。笔者一开始看到这个的时候还是很高兴的,因为笔者是一个菜鸡,菜鸡是不可能自己写出opengl的相机的,只能求助于第三方库,而且笔者用的是QT。这类的相机官方例子也只给出了很少量的介绍。所以笔者决定一定要看看这个库究竟如何使用。后来发现,这个库封装的是opengl1,而不是基于顶点缓存和索引缓存的opengl es2,所以它的显示速度还是有待提高。

   本人使用QTCreator作为编译工具。版本为X64、Win8、VS13、QT5.5。请诸位小伙伴们千万不要搞错。不同版本的QT要对应好各自的编译器。

QT5.5的配置不多说了,网上一大堆。装好后再装Vsadd-in。这些都是必须的。

然后从官网上下载QGLViewer,传送门如下:

http://libqglviewer.com/installWindows.html

然后解压:一开始应该只有这几个东西:

我们直接打开QGLViewer下的pro进行编译,我们先不管其他的。

    上面这个配置一定要选对哦,不然的话后续是连接不起来的。笔者的是VS3013的64位,没啥毛病。我们开始编译,点击左下角的大锤子开始。不出问题的话就会报下面这些错误了:

恩,可以说不出所料,自然不会这么简单22333333.

还好笔者凭着超级丰富的经验,当下就判断出来,这个绝对是opengl库没配好。(这他妈的还用你说)哈~哈哈哈~哈哈哈哈哈哈。。。。。

笔者在pro中添加了如下救命代码,这个代码曾经解决了笔者的opengl无法使用的问题:

win32-g++:!contains(QMAKE_HOST.arch,x86_64){

    LIBS+="C:/ProgramFiles(x86)/MicrosoftSDKs/Windows/v7.1A/Lib/OpenGL32.lib"

}else{

    LIBS+="C:/ProgramFiles(x86)/MicrosoftSDKs/Windows/v7.1A/Lib/x64/OpenGL32.lib"

}

添加完了之后就长下面这个样子:

添加完之后还没完,我们要重新编译,但是这个时候如果编译个锤子的话,仍然会报相同的错误。其实是QT自己的bug,因为他不会自动刷新配置。这个时候我们只要将生成的文件删除然后再编译个锤子就行了。

图解见下面:

上面的图就是你需要删除的文件,位置就应该在上级目录,名字的话,每个人都不一样。

然后我们再重新编译。这回错误少了很多,然而还是没有过去。

笔者抑制住了打穿电脑的冲动,并开始冷静地分析。。。。2233333

这个错误仍然是opengl,这几个函数都是glu打头的,那么一定是少了glu库。而我们刚才添加的库是opengl32,那么在相应目录下也应该找到glu32才对!笔者立刻打开相应文件夹来看,果然,两个都找到了。

好,那接下来我们把这个库也添加进来呗:

好那么删除工程,重新编译!yes!过了。那么查看一下生成的文件:

恩,不错,完好无损。这个QGLViewer编译成功过后,笔者信心大增。

好嘞,别忘了,把Release和Debug中生成的这几个文件复制到C:\windows\System32

这一步复制非常重要,因为下面编译的时候会在这个路径下寻找这几个库。笔者在这中间也是折腾了好久。

下面编译这个玩意:designerPlugin,这个东西说白了吧,做成了一个控件,可以在VS编译器下进行拖放,也就是说可以跟其它Widget一样可以在窗体设计器中进行设计。真tm的人性化啊。好了我们不爆粗口。

仔细一看,还是opengl出了问题,好嘞,继续刚才的做法,添加opengl的两个lib即可,然后删除生成的文件,重新编译。

诶,过了。非常开心。好嘞,我们先不管这个designer,因为这个是可选的,其实我们有了QGLViewer之后已经可以运行例子了。先来跑个example试试。

首先打开一个animation,编译看看,诶,别急,打开之后发现左下角除了锤子都是灰色的,哈?这个什么鬼?点一下锤子看看,诶,编译成功了,然而不能运行。。。

这个大概就是解析出了问题。一般来讲这个问题,只要我们重新新建一个工程然后拷贝相应的h文件和Cpp文件过去就行了。然后作者抱着尝试的心态弄了一下,新建了一个工程,向新建工程的pro中添加了一些代码如下:

其实在这之前比这还做了一件事就是把lib和dll全部拷贝出来放到一个单独的文件夹中,当然,h文件也拷贝出来了。如下图所示:

恩,就酱。或者你不想这样做的话也没有关系,只要包含相应的lib所在目录就行了。当然了,由于用到了opengl,你必须在pro中添加刚才的那两行救命代码,还有一些opengl必备的组件才行:

那么接下来我们编译然后运行程序:

    哎呦呦,出来了。有点小激动。

    其实有的时候自己也不知道前方的程序会遇到什么问题,但是只要洗了功夫,一定可以得到解决。即便是没有解决,自己也可以通过这些事情锻炼解决问题的办法,这才是最重要的。

    本次编译过程花费攻共计5个半小时。再加上文档编写,一共6个半小时。圆满成功。当然,前方的路还很长,同志仍需努力。

猜你喜欢

转载自blog.csdn.net/a_222850215/article/details/81074072