win10 + vs2017 + cmake3.17编译OSG-3.4.1

1. 下载文件

主要用到4个文件

  • 1)OSG-3.4.1源码
  • 2)OSG第三方依赖库
  • 3)OSG示例数据
  • 4)cmake-3.17

我已经准备好了,大家可以自行下载。下载路径:

  • 链接:https://pan.baidu.com/s/1E3YESh0T9KPlJJe2EDmIvA 
  • 提取码:gvbk

2. 文件夹整理

为了方便编译,在硬盘下建立一个OSG文件夹,然后分别建立如下5个文件夹:

  • 1)OSG-3.4.1: 用于存放解压后的 osg-3.4.1.zip 文件
  • 2)3rdParty:   用于存放解压后的 3rdParty_VS2017_v141_x64_V11_full.7z 文件
  • 3)Data:        用于存放解压后的 OpenSceneGraph-Data-3.4.0.zip
  • 4)build:       用于存放编译的过程文件
  • 5)install:      用于存放安装文件

3. 配置cmake

打开cmake-gui,将OSG-3.4.1中的CMakeLists.txt文件直接拖放到CMake界面

3.1 修改build路径

“Where to build the binaries”设置为上面设置的build文件夹路径

3.2 修改install路径

将“CMAKE_INSTALL_PREFIX ”的值设置为上面设置的install文件夹路径

3.3 修改ACTUAL_3RDPARTY_DIR值

修改 ACTUAL_3RDPARTY_DIR 的值为前面配置好的3rdParty的目录路径。

3.4 取消勾选BUILD_OSG_EXAMPLE

如果勾选了这个选项,vs2017会默认“ALL_BUILD”并“INSTALL”这些例子。但是CMakeLists.txt中没有配置INSTALL来安装这些example的指令,因此会在install过程中失败。如果想build相关的example,可以等Install过程完成之后,再重新配置,专门build相关的example.

3.5 删除所有的nvtt配置信息

上面几个内容的value值全部清空。他们是用于配置nvtt插件的。我在安装时,总会在nvtt插件这里报错。考虑到nvtt插件的必要性并不大,这里建议直接不安装这个插件。 

4. cmake编译

依次执行Configure(直至所有cmake配置项变成白色)-->Generate-->Open Project,用VS2017打开项目。

5. VS2017编译

先生成ALL_BUILD,然后生成INSTALL

6. 安装成功测试

6.1)将Data路径添加为环境变量

添加系统环境变量 OSG_FILE_PATH,值为前面的Data的目录(osg\Data):

6.2)把bin目录添加到环境变量

需要把以下三个路径添加到系统环境变量path中

  • F:\3rd_party\osg\3rdParty\bin(这里面有些dll依赖项没有被拷贝到osg/install的文件夹中,为了避免osg的exe程序报错,所以把该路径添加到环境变量中。也可以把该路径下的dll文件全部拷贝到osg/install/bin中)
  • F:\3rd_party\osg\install\bin
  • F:\3rd_party\osg\install\share\OpenSceneGraph\bin

6.3)(重启后)打开cmd进行测试

测试1:cmd中输入osgversion

        该测试调用生成的 install/bin/osgversion.exe,返回OSG的版本。因为前面已经将install/bin/添加为系统变量了,所以这里可以直接输入osgversion进行测试。

测试2:cmd中输入osglogo

        该命令调用了 osg\install\share\OpenSceneGraph\bin\osglogo.exe,显示osg的logo图片。因为前面已经将osg\install\share\OpenSceneGraph\bin添加为系统变量了,所以这里可以直接输入osglogo进行测试。

测试3:cmd中输入 osgviewer cow.osg

        该命令调用了 osg/install/bin/osgviewer.exe, 去打开osg/Data/cow.osg。因为osg/install/binosg/Data都已经添加为系统变量,所以这里可以省略全局路径。

参考博客:

【OSG】OSG环境部署 OSG3.6.5+vs2017+win10_x64(超详细)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先,需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例,可以使用以下命令安装selenium和chromedriver: pip install selenium然后,需要下载对应版本的chromedriver,并将其添加到环境变量中。下载地址&a…

代码随想录二刷 |二叉树 |144.二叉树的前序遍历

代码随想录二刷 |二叉树 |144.二叉树的前序遍历 题目描述解题思路代码实现递归法迭代法 题目描述 144.二叉树的前序遍历 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输…

godot 报错Unable to initialize Vulkan video driver解决

版本 godot 4.2.1 现象 godot4.2.1 默认使用vulkan驱动,如果再不支持vulkan驱动的主机上,进入引擎编辑器将报错如下 解决 启动参数添加 –rendering-driver opengl3 即可进入引擎编辑器 此时运行项目仍然会报错无法初始化驱动 在项目设置中配置编…

vue实现公式编辑器组件

实现方式一 1、效果图 2、实现代码 组件弹框实现 样式自己调整 公式的数字与汉字元素、符号 建立元素表 动态获取 完整代码&#xff08;calculate.vue&#xff09; <template><div id"formulaPage"><divref"formulaView"class"f…

记录今日将C语言的Windows程序更改为python语言Windows程序,实现子窗口控制,类似微信程序框架最简单的原型

基本思路 为什么要选择python制作Windows应用程序&#xff0c;主要就是源代码直接展示&#xff0c;发现问题随时修改&#xff0c;同时可以不断增加新的功能方便。 由于C语言的Windows程序中结构类型在python中不能使用&#xff0c; 因此我们按照ctypes模块指导意见继承structu…

Verilog自学还是报班?

FPGA作为国内领先的芯片产品&#xff0c;和传统芯片相比并不局限于单纯的研究和设计芯片&#xff0c;而是针对多种领域的产品通过特定的芯片模型进行优化设计。FPGA本身也构成了典型的半定制电路&#xff0c;涵盖了数字管理模块、输入、输出等单元。 FPGA最大的特点是可以在同…

Unity_C#中使用protobuf

Unity_C#中使用protobuf 下载官方protobuf地址&#xff1a; https://github.com/protocolbuffers/protobuf/releaseshttps://links.jianshu.com/go?tohttps%3A%2F%2Fgithub.com%2Fprotocolbuffers%2Fprotobuf%2Freleases protobuf-c#源码生成dll&#xff0c;导入unity 1.…

双向无线功率传输系统MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介&#xff1a; 初级侧转换器通过双向 AC/DC 转换器从电网获取电力&#xff0c;并由直流线电压 Vin 供电&#xff0c;而拾波侧被视为连接到 EV&#xff0c;并由连接到任一存储的单独直流源 Vout 表示或…

N26:构建无缝体验的平台工程之路-Part 2

​ 在第一​​​​​​部分&#xff0c;我们介绍了 N26 团队为达成 “在 Day 1 实现轻松部署” 的目标而设定的战略规划和开发人员体验图&#xff0c;在这一部分&#xff0c;我们将带您了解该团队如何构建最简可行平台以及该平台如何运作。 01 计划构建最简可行平台 我们通…

高通开发系列 - 功耗问题之添加CPU Idle和Hotplug的功能

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 概述CPU IdleCPU TopologyCPU Idle DriverCPU Idle GovernorCPU的hotplug函数

TCP/UDP 协议

目录 一.TCP协议 1.介绍 2.报文格式 ​编辑 确认号 控制位 窗口大小 3.TCP特性 二.TCP协议的三次握手 1.tcp 三次握手的过程 三.四次挥手 2.有限状态机 四.tcp协议和udp协议的区别 五.udp协议 UDP特性 六.telnet协议 一.TCP协议 1.介绍 TCP&#xff08;Transm…

DBCA创建RAC的过程截图

以下错误是由于配置的内存较大&#xff0c;而大页&#xff08;HugePage&#xff09;配置较小导致&#xff0c;调整大页后就好了。

Kafka基础理论与常用命令详解(超详细)

文章目录 前言一、Kafka概述1. Kafka简介2. Kafka架构2.1 Broker&#xff08;代理服务器&#xff09;2.2 Topic&#xff08;主题&#xff09;2.3 Producer&#xff08;生产者&#xff09;2.4 Consumer&#xff08;消费者&#xff09;2.5 Consumer Group&#xff08;消费者组&am…

Centos硬盘操作合集

一、硬盘命令说明 lsblk 列出系统上的所有磁盘列表 查看磁盘列表 参数意义 blkid 列出硬盘UUID [rootzs ~]# blkid /dev/sda1: UUID"77dcd110-dad6-45b8-97d4-fa592dc56d07" TYPE"xfs" /dev/sda2: UUID"oDT0oD-LCIJ-Xh7r-lBfd-axLD-DRiN-Twa…

Mybatis详解

MyBatis是什么 MyBatis是一个持久层框架&#xff0c;用于简化数据库操作的开发。它通过将SQL语句和Java方法进行映射&#xff0c;实现了数据库操作的解耦和简化。以下是MyBatis的优点和缺点&#xff1a; 优点&#xff1a; 1. 灵活性&#xff1a;MyBatis允许开发人员编写原生的…

如何正确使用缓存来提升系统性能

文章目录 引言什么时候适合加缓存&#xff1f;示例1示例2&#xff1a;示例3&#xff1a; 缓存应该怎么配置&#xff1f;数据分布**缓存容量大小&#xff1a;**数据淘汰策略 缓存的副作用总结 引言 在上一篇文章IO密集型服务提升性能的三种方法中&#xff0c;我们提到了三种优化…

Kafka-Kafka基本原理与集群快速搭建

一、Kafka介绍 ​ ChatGPT对于Apache Kafka的介绍&#xff1a; Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理…

【基础篇】一,认识STM32

一&#xff0c;什么是STM32&#xff1f; STM32是一款由意法半导体公司开发的32位微控制器&#xff1b;其中ST指意法半导体&#xff1b;M指MCU或MPU&#xff0c;32指32 位。 STM32覆盖了Cortex-M的多种系列&#xff0c;包括M0、M0、M3、M7等。在分类上&#xff0c;STM32有很多…

MyBatisPlus基础入门笔记

MyBatisPlus基础入门笔记&#xff0c;源码可见下载链接 大家阅读时可善用目录功能&#xff0c;可以提高大家的阅读效率 下载地址&#xff1a;MyBatisPlus源码笔记 初识MyBatisPlus 入门案例 SpringBoot整合MyBatis&#xff08;复习&#xff09; 创建SpringBoot工程勾选使用的…