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 即可进入引擎编辑器 此时运行项目仍然会报错无法初始化驱动 在项目设置中配置编…

面试__Java常见异常有哪些?

java.lang.IllegalAccessError:违法访问错误。当一个应用试图访问、修改某个类的域(Field)或 者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。 java.lang.InstantiationError:实例化错误。当…

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 计划构建最简可行平台 我们通…

LeetCode //C - 605. Can Place Flowers

605. Can Place Flowers You have a long flowerbed in which some of the plots are planted, and some are not. However, flowers cannot be planted in adjacent plots. Given an integer array flowerbed containing 0’s and 1’s, where 0 means empty and 1 means no…

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

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

docker相关的命令

镜像管理命令 说明 docker images 查看本机镜像 docker search 镜像名称 从官方仓库查找镜像 docker pull 镜像名称:标签 下载镜像 docker push 镜像名称:标签 上传镜像 docker save 镜像名称:标签 -o 备份镜像名称.tar 备份镜像为tar包 docker load -i 备份镜像名…

ifconfig命令和ip命令

1.ifconfig ifconfig是Linux中用于显示和配置网络接口参数的命令。以下是一些常用的ifconfig命令选项&#xff1a; 查看所有网络接口的信息&#xff1a;ifconfig -a查看指定网络接口的信息&#xff0c;例如eth0&#xff1a;ifconfig eth0配置网络接口的IP地址、子网掩码和广播…

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;调整大页后就好了。

挑战52天学小猪佩奇笔记--day22

52天学完小猪佩奇--day22 ​【本文说明】 本文内容来源于对B站UP 脑洞部长 的系列视频 挑战52天背完小猪佩奇----day22 的视频内容总结&#xff0c;方便复习。强烈建议大家去关注一波UP&#xff0c;配合UP视频学习。 day22的主题&#xff1a;掉牙齿 语境&#xff1a;最开始是佩…

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…