OpenSceneGraph-OpenSceneGraph-3.6.5源码编译

前言

准备

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
在这里插入图片描述

在这里插入图片描述

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

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值