3D进阶之OSG:编译osgQt的旧版本

2024-03-15 22:18

本文主要是介绍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的旧版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813427

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx