本文主要是介绍3D进阶之OSG:编译osgQt的旧版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原来新版本osgQt的编译请移步到这里,
3D进阶之OSG: 编译osgQt_高精度计算机视觉的博客-CSDN博客osgQt是个简单的小项目,其实没有必要额外的编译,最核心的是个名为GraphicsWindowQt的类,只需要复制GraphicsWindowQt.h和GraphicsWindowQt.cpp到QT工程里面就可以使用了。同时osgQt给出了一个名为osgviewerQt的样例,也仅仅只是个cpp文件。结合两者,一个简单的示例就出来了。编译osgQt前面已经讲过了如何编译OSG,或者,直接下载OSG二进制可执行文件及库文件,得到这些文件后,我们就可以尝试着把Qt和OSG结合起来开发了,OSG官方https://blog.csdn.net/tanmx219/article/details/123947214今天收到信息,说是某些教程中用的osgQt是旧版本,没办法用新的版本来编译。于是我决定编译一下旧的osgQt版本。
https://github.com/mathieu/osgQt
首先到这里去把ostQt拉下来,为了区别原来的osgQt,我这里把文件夹命名为osgQtOld,后面采用同一规则。
git clone https://github.com/mathieu/osgQt osgQtOld
然后用cmake-gui配置一下,结果如下图所示,
Configure + Generate之后,用VS2019打开编译就OK了。
碰到的问题
(1)cmake-gui报错:Could NOT find OpenSceneGraph: Found unsuitable version "..", but required
这个主要是因为osg的路径设置错误引起的,那个OSG_INCLUDE_DIR要配置成
E:/vOSG/OpenSceneGraph/dev/include
这里才有版本信息,而不是源码下面那个地址,
E:/vOSG/OpenSceneGraph/include (X,不是这个地址)
(2)cmake-gui报错:INCLUDE could not find requested file: Find3rdPartyDependencies
不知道这是个什么东西,也没看到这么个头文件夹;估计是作者放第三方库头文件的位置;找到CMakeLists.tx中下面三行,直接注释掉,
# 3rd Party Dependency Stuff (下面三行注释掉)
# IF(WIN32)
# INCLUDE(Find3rdPartyDependencies)
# ENDIF()
(3)VS2019编译时报错:version WORDS separated by commas expected
添加后面的三行,如下,
#FIND_PACKAGE(OpenSceneGraph 3.5.5 REQUIRED osgDB osgGA osgUtil osgText osgViewer osgWidget)
FIND_PACKAGE(OpenSceneGraph 3.6.0 REQUIRED osgDB osgGA osgUtil osgText osgViewer osgWidget)
SET(OPENSCENEGRAPH_SOVERSION 145)
#added by TAN (添加下面三行)
SET(OPENSCENEGRAPH_MAJOR_VERSION 3)
SET(OPENSCENEGRAPH_MINOR_VERSION 5)
SET(OPENSCENEGRAPH_PATCH_VERSION 6)
(4)release版本链接错误:
1>LINK : fatal error LNK1181: 无法打开输入文件“optimized.lib”
1>LINK : fatal error LNK1181: 无法打开输入文件“debug.lib”
直接找到release版本中的链接,删除掉optimized.lib和debug.lib。
这样,旧版本的osgQt就编译好了。
本文结束
参考资料
osgQt配置过程_噜啦啦~~的博客-CSDN博客_osg配置qt
这篇关于3D进阶之OSG:编译osgQt的旧版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!