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

相关文章

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

javaSE类和对象进阶用法举例详解

《javaSE类和对象进阶用法举例详解》JavaSE的面向对象编程是软件开发中的基石,它通过类和对象的概念,实现了代码的模块化、可复用性和灵活性,:本文主要介绍javaSE类和对象进阶用法的相关资... 目录前言一、封装1.访问限定符2.包2.1包的概念2.2导入包2.3自定义包2.4常见的包二、stati

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编