Windows libQGLViewer2.7.0,libQGLViewer2.6.2与g2o20160427, g2o20170730编译生成G2O

1. Win10, VS2013, libQGLViewer2.6.2 和 QT5.6.3编译时候会出错,初步判断libQGLViewer2.6.2不支持QT5

错误    73    error LNK1120: 50 个无法解析的外部命令    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\debug\\QGLViewerd2.dll    QGLViewer
错误    6    error LNK2001: 无法解析的外部符号 __imp__glBegin@4    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\keyFrameInterpolator.obj    QGLViewer
错误    7    error LNK2001: 无法解析的外部符号 __imp__glBegin@4    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\qglviewer.obj    QGLViewer
错误    39    error LNK2001: 无法解析的外部符号 __imp__glDisable@4    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\qglviewer.obj    QGLViewer
错误    9    error LNK2001: 无法解析的外部符号 __imp__glEnd@0    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\keyFrameInterpolator.obj    QGLViewer
错误    10    error LNK2001: 无法解析的外部符号 __imp__glEnd@0    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\qglviewer.obj    QGLViewer
错误    12    error LNK2001: 无法解析的外部符号 __imp__glFrustum@48    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\saveSnapshot.obj    QGLViewer
错误    41    error LNK2001: 无法解析的外部符号 __imp__glLineWidth@4    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\qglviewer.obj    QGLViewer
错误    14    error LNK2001: 无法解析的外部符号 __imp__glLoadIdentity@0    D:\Packages\G2O\libQGLViewer-2.6.2\QGLViewer\qglviewer.obj    QGLViewer
...
...

解决方式: 将libQGLViewer换成2.7.0版本正常编译可以生成QGLViewer2.dll、QGLViewer2.lib(release版)和  QGLViewerd2.dll、QGLViewerd2.lib(debug版)了

2. 如果是用Win10, VS2008(不支持C11), libQGLViewer2.6.2和QT4.7.1则不会报错

3. 动态库的放置位置

dll拷贝至系统文件夹 32位是C:\Windows\System32,64位是C:\Windows\SysWOW64可以将编译的64位版本动态库放置到此位置

4. libQGLViewer2.7.0和g2o20160427和g2o20170730不兼容因为,错误如下

错误    19    error C2039: “updateGL”: 不是“g2o::G2oQGLViewer”的成员    

错误原因QGLViewer2.7.0更新如下导致出现此问题,导致最后g2o_viewer库难以生成

QGLViewer extends QOpenGLWidget instead of the deprecated QGLWidget (huge thanks to Gianluca).
Although there are minor differences between the two classes, the switch should be mostly invisible.
Using update() instead of updateGL() is one of them.
The renderText methods were backported to maintain backward compatibility.
Some overloaded constructors (using a QGLFormat or a sharedWidget) are deprecated since they have no equivalent.

解决方式:将报错中updateGL()替换成update()即可顺利编译生成g2o_viewer或者利用QT4和低版本的libQGLViewer编译不会产生这种问题

 

转载于:https://www.cnblogs.com/flyinggod/p/8041374.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值