OpenSceneGraph-OpenSceneGraph-3.6.5源码编译

2023-11-06

前言

准备

git(不是必须)使用git得到的源码是3.6.5版本的

CMake

vs2019(VS017可以)

我这里用的vs2019

osg主页
在这里插入图片描述

源码下载

Cmake编译源码

在这里插入图片描述
编译报错
CMake Warning (dev) at F:/Program Files/CMake/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to find_package_handle_standard_args (PkgConfig)
does not match the name of the calling package (GTA). This can lead to
problems in calling code that expects find_package result variables
(e.g., _FOUND) to follow a certain pattern.
Call Stack (most recent call first):
F:/Program Files/CMake/share/cmake-3.21/Modules/FindPkgConfig.cmake:70 (find_package_handle_standard_args)
CMakeModules/FindGTA.cmake:11 (INCLUDE)
CMakeLists.txt:751 (FIND_PACKAGE)
This warning is for project developers. Use -Wno-dev to suppress it.
在这里插入图片描述
报错原因:源码中不包含以下第三方库

  1. Freetype
  2. JPEG
  3. Jasper
  4. LibXml2
  5. ZLIB
  6. GDAL
    解决:依次下载这些库,并在CMake中配置这些库的路径
    当前(2020/04/14)中文网提供的依赖目前链接失效了,这里访问英文官网提供的第3方依赖: http://www.openscenegraph.org/index.php/download-section/dependencies
    在这里插入图片描述
    上面一个是full,一个是small,随便选一个,我这里选的full
    small和full最大区别:感觉full多了boost库
    在这里插入图片描述
    这里面包含了
  7. Freetype
  8. JPEG
  9. Jasper
  10. LibXml2
  11. ZLIB
  12. GDAL
    这几个库,话说选择osg组织真的变贴心了,我记得在2016年前这几个库都需要自己下载,编译生成lib和dll

下载OpenSceneGraph-Data-3.4.0.zip

osg_data-3.4.0下载

CMake编译源码

在这里插入图片描述

Open Project

在第三步的结果路径中,找到OpenSceneGraph.sln,将其用VS2019打开。
在菜单栏选择生成——批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间很长,大概 4-5个小时。如果前面步骤没有错误的话,这一步不会报错,只有警告。设置详情如下图所示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第1步完成后,再打开批生成对INSTALL也进行相应生成编译(上一步已勾选的二者要取消勾选)。这段时间相应会短一点。如图:

编译
真的是漫长等待啊,我机器大概用3~4个小时,有一个错误,不知道原因
在这里插入图片描述

将OSG添加到系统环境变量

以上步骤进行完成后,对系统变量作如下设置:
1、添加系统变量:OSG_FILE_PATH,变量值为E:\osg\OpenSceneGraph-Data(与第二步中所建目录相对应)。
2、在PATH变量中添加:第四步结果目录中的bin目录。 E:\osg\OpenSceneGraph_build_vs2019_x64\bin
配置完成后,可在命令提示符cmd中输入osgversion或osglogo进行测试,也可以输入osgviewer cow.osg,会出现下面的牛。 成功出现则说明系统配置成功。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
osgversion
这里我是用git获得的源码是3.7.0,如果直接下载的源码就是3.6.5,感觉区别不大,2个版本我都编译过,只有一点不同:使用3.7.0编译得到的库是osg202版本,而osg3.6.5编译得到的库是osg161版本,见下图:
在这里插入图片描述

在这里插入图片描述
注意2个版本不能混着用,osg没有向下兼容!!!!切记
在这里插入图片描述

在这里插入图片描述
osglogo
在这里插入图片描述

在这里插入图片描述

osgviewer cow.osg
在这里插入图片描述

在这里插入图片描述

新建OSG项目测试

1、在VS2019下新建C++控制台程序。

2、右键项目,选择“属性”,顶部平台选择x64,左侧配置属性选择“VC++目录”,在包含目录添加:第四步结果目录中的include目录。在库目录添加:第四步结果目录中的lib目录。具体情况如下图:

#include <osgViewer/Viewer>
#include <osgDB/ReadFile>

int main(int argc, char** argv)
{
    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
    return viewer.run();
}
  1. 工程配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
%(PreprocessorDefinitions)
WIN32
_WINDOWS
_WIN32_WINNT=0x0A00
_SCL_SECURE_NO_WARNINGS
_CRT_SECURE_NO_DEPRECATE
CMAKE_INTDIR="Debug"

在这里插入图片描述
在这里插入图片描述

osgViewerd.lib
osgTextd.lib
opengl32.lib
osgGAd.lib
osgDBd.lib
E:\osg\3rdParty\3rdParty_x64\x64\lib\zlibd.lib
osgUtild.lib
osgd.lib
OpenThreadsd.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib

把:E:\osg\OpenSceneGraph-OpenSceneGraph-3.6.5_build_vs2019_x64\bin
路径下的这几个dll拷贝到工程debug运行目录下,也可以根据你的需要选择dll
在这里插入图片描述

在这里插入图片描述

工程源码下载
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenSceneGraph-OpenSceneGraph-3.6.5源码编译 的相关文章

随机推荐

  • python实现PCA降维

    概述 本文主要介绍一种降维方法 PCA Principal Component Analysis 主成分分析 降维致力于解决三类问题 1 降维可以缓解维度灾难问题 2 降维可以在压缩数据的同时让信息损失最小化 3 理解几百个维度的数据结构很
  • mybatis-【回顾】

    分页 减少数据得到处理量 limit分页 mybatis实现分页 接口 mapperr xml 测试 RowBounds类实现分页 分页插件PageHelper 复杂查询环境搭建 导入lombok 建实体类 建mapper接口 简历mapp
  • 使用Arduino和TB6612驱动编码电机实现测速功能

    编码电机是一种常见的电机类型 它可以通过内置的编码器精确地测量电机的转速和位置 在本文中 我们将介绍如何使用Arduino和TB6612驱动编码电机 并实现测速功能 TB6612是一种双路直流电机驱动器 适用于控制小型直流电机 我们将使用A
  • 基于MATLAB的视频运动目标检测识别

    一 课题介绍 视频图像处理技术广泛用于工业 安全 医疗 管理等领域 运动目标的检测和跟踪是图像处理技术在视频序列图像处理方面的一个重要应用 在航天 交通 机器人视觉 视频监控 公共场所客流数据监测等场合发挥着重要作用 本文介绍了一种基于MA
  • leetcode分类刷题:矩阵顺时针模拟

    1 这种题目是对代码熟练度考察 模拟顺时针建立或访问矩阵 需要注意矩阵是否为方阵 2 具体思路 以圈数为循环条件 每一圈都坚持左闭右开的区间规则 当小的行列值为奇数 最后一圈为一行或一列或一个数字的不完整圈 3 细节 把 起始圈的上下左右边
  • svn linux客户端使用教程,linux svn 客户端安装配置

    1 首先需要安装SVN Ubuntu下的SVN安装十分简单 sudo apt get install subversion 然后根据提示一步一步 就完成了SVN的安装 sudo apt get install subversion subv
  • C++OpenCV(4):图像截取与掩膜操作

    文章首发于我的个人博客 欢迎大佬们来逛逛 OpenCV项目地址及源代码 点击这里 文章目录 图像截取 图像掩膜操作 图像截取 ROI操作 指的是 region of interest 感兴趣区域 我们可以对一张图片的某个感兴趣的部分进行截取
  • 【C++习题笔记】谭浩强C++程序设计(第三版)第五章

    1 用筛法求100之内的素数 筛法又称为筛选法 具体做法是 先把N个自然数按次序排列起来 1不是质数 也不是合数 要划去 第二个数2是质数留下来 而把2后面所有能被2整除的数都划去 2后面第一个没划去的数是3 把3留下 再把3后面所有能被3
  • 中小银行文件共享需求场景下由GPFS迁移至华为企业级NAS存储实践分享

    导读 IBM GPFS是业界成熟的并行文件系统解决方案 在银行业被广泛应用于文件共享等集群场景 但其相对较高的部署和维护门槛 一定程度上不再能适应业务快速部署 灵活管理的需求 随着NAS产品近年来的长足发展 特别是以华为等主流存储厂商为代表
  • es6-模块化

    模块化 利用export导出和import导入实现模块化 一定程度上可以减少代码的冗余 创建一个js文件 内容如下 创建一个html文件 内容如下
  • WSA with Magisk Root安装配置教程(2023.5)

    前言 最近正式走上了安卓逆向的道路 刚开始尝试了各种模拟器 雷电 夜神 及其海外版 并且安装配置了多次magisk 倒不是说这些模拟器的体验有多差 主要还是不能与 Windows Hype V 共存导致无法使用 WSL 这点让我无法接受 s
  • C++中的指针与引用

    写在前面 指针和引用形式上很好区别 但是他们似乎有相同的功能 都能够直接引用对象 对其进行直接的操作 但是什么时候使用指针 什么时候使用引用呢 这两者很容易混淆 在此我详细介绍一下指针和引用 力争将最真实的一面展现给大家 如果我写得不够好
  • Python:Choosing Colormaps in Matplotlib

    Choosing Colormaps in Matplotlib Matplotlib has a number of built in colormaps accessible via matplotlib colormaps There
  • 学习:对抗神经网络 - 恶意软件

    https blog trendmicro com trendlabs security intelligence a machine learning model to detect malware variants 这个是一个博客中的信
  • [网络安全自学篇] 四十六.微软证书安全问题 (上)Windows验证机制及可执行文件签名问题

    在分享本篇文章之前 先简单聊聊我学习网络安全和系统安全的感受 半年来 作为网络安全的初学者 我写了近50篇安全的文章 从Web渗透到CTF 从二进制分析到恶意代码检测 从CVE漏洞还原到木马病毒及论文 但还是觉得自己非常菜 至今未进入安全圈
  • token做自动登录

    token 身份验证 token 前端自动登录 OpenSSL perl软件安装 https blog csdn net sunhuansheng article details 82218678 OpenSSl Perl这个软件安装无要求
  • vs2015安装_VS2015安装教程

    1 vs2015下载地址 https visualstudio microsoft com zh hans downloads 下载完后解压软件后以管理员身份运行右图的文件 2 开始安装后 会出现等待界面 可能需要几分钟 3 初始化安装程序
  • Python的学习笔记案例6--判断密码强度5.0

    本节课主要讲原来分散的方法封装成一个类 使之成为一个整体 方便调用 就是面向对象编程的思想 1 面向过程编程和面向对象编程的区别 面向过程 POP 以程序执行过程为设计流程的编程思想 面向对象 OOP 以事物为中心的编程思想 什么是对象 O
  • 服务器响应的jsp文件,JSP服务器响应

    JSP服务器响应 Response响应对象主要将JSP容器处理后的结果传回到客户端 可以通过response变量设置HTTP的状态和向客户端发送数据 如Cookie HTTP文件头信息等 一个典型的响应看起来就像下面这样 HTTP 1 1
  • OpenSceneGraph-OpenSceneGraph-3.6.5源码编译

    前言 准备 git 不是必须 使用git得到的源码是3 6 5版本的 CMake vs2019 VS017可以 我这里用的vs2019 osg主页 源码下载 Cmake编译源码 编译报错 CMake Warning dev at F Pro