VS2019 编译最新版 OSG+ OSGEarth + OSGQt 详细教程

鸣谢

感谢以下精品作者:(包涵但不仅有以下作者)
  以下主要包涵了我编译全流程查询过的部分核心文档,还有部分可能有涉及但未深入因此未提名。

VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt_vs2019配置osg-CSDN博客

https://blog.csdn.net/qq_35662333/article/details/138115534

windows下VS2019编译GDAL、PROJ全教程_pkg编译gdal proj库-CSDN博客

https://blog.csdn.net/ybyhlj/article/details/124100641spm=1001.2014.3001.5502

OsgEarth嵌入qt开发学习笔记(1)-使用vs2022编译OSG、OSGEASRTH、OSGQT_osgearth qt-CSDN博客

https://blog.csdn.net/m0_61776040/article/details/138574934

使用vcpkg安装osg、osgearth、osgQt_vcpkg osgearth-CSDN博客

https://blog.csdn.net/m0_61776040/article/details/138897125

使用cmake和vcpkg构建最新osgearth3.5_osgearth3.5demo-CSDN博客

https://blog.csdn.net/m0_61776040/article/details/138126419

本博客资源链接_osg 百度网盘-CSDN博客

https://blog.csdn.net/FreeSouthS/article/details/121093781

Qt基础 | QT5.15.2与VS2019安装及配置_qt msvc2019下载-CSDN博客

https://blog.csdn.net/zwcslj/article/details/136311040

懒人福利

  如果我的编译程序正好符合你的使用要求,你可以直接在百度云上下载我的成果。
  链接:https://pan.baidu.com/s/10zuDh8gHzbLBlrlOLzR7hA?pwd=3cwt
  提取码:3cwt
  备用链接:https://pan.baidu.com/s/1CbcDypZMp-i3eIqrVJ-RTQ?pwd=p1mq
请各位拿来主义者,给我点个关注呗。让我更开心的写更过的文章帮助各位。

编译过程及截图

一、编译OSG

1.1 下载支持库OSG编译资源

OpenSceneGraph-master

https://github.com/openscenegraph/OpenSceneGraph/tree/master

OpenSceneGraph-Data

https://github.com/openscenegraph/OpenSceneGraph-Data/tree/OpenSceneGraph-Data-3.4.0

3rdParty_VS2017_v141_x64_V11_full

https://download.osgvisual.org/

GL3库支持

https://github.com/KhronosGroup/OpenGL-Registry

KHR库支持

https://github.com/KhronosGroup/EGL-Registry

1.2 编译OSG

1.2.1 解压文件

在这里插入图片描述

1.2.2 使用Cmake编译

在这里插入图片描述
  选择三方支持库路径:
在这里插入图片描述
  勾选BUILD_OSG_EXAMPLE
在这里插入图片描述
  设置编译后的目标文件夹(即生成目标库的位置,建议放在build的同级目录避免编译失败)
在这里插入图片描述
  增加KHR头文件支持
在这里插入图片描述
  增加GL3的头文件支持
在这里插入图片描述
  修改 OPENGL_HEADER1 #include<GL/gl.h> 为 #include<GL/glcorearb.h>
  修改 OPENGL_PROFILE GL2 为GL3
在这里插入图片描述
  修改OSG下的选项条件
在这里插入图片描述
在这里插入图片描述
  修改OSG_GL_CONTEXT_VERSION = 3.3 (这里是个分歧点,部分大佬说不需要修改默认的1.0即可,我这里第一次跟做所以也采用了3.3)
在这里插入图片描述

1.2.3 Configure 编译

  继续Configure 编译,一般来说 再点击两次Configure 即可将所有的红色警告变成白色。
在这里插入图片描述

1.2.4 Generate 点击生成

在这里插入图片描述

1.2.5 批生成

  先修改Texture 中的声明

// #ifndef GL_EXT_texture_compression_s3tc
    #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT         0x83F0
    #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT        0x83F1
    #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT        0x83F2
    #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT        0x83F3
    #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT        0x8C4C
    #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT  0x8C4D
    #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT  0x8C4E
    #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT  0x8C4F
// #endif

在这里插入图片描述
然后开始生成(预计生成时间为1小时)
在这里插入图片描述

1.2.6 测试是否可以调用

设置包涵目录
在这里插入图片描述
设置附加库目录
在这里插入图片描述
设置依赖项
在这里插入图片描述
示例代码(这个代码在分享链接中有,也可以下载后自行修改):

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

void CMFCApplication1Dlg::OnBnClickedOk()
{
       // TODO: 在此添加控件通知处理程序代码
       osg::Node* node = osgDB::readNodeFile(R"(G:\共享文件夹\001公共文件夹\002 公共库\020  osgearth\osgearth\v2\Osg\OpenSceneGraph-Data-OpenSceneGraph-Data-3.4.0\glider.osg)");
       osgViewer::Viewer viewer;
       viewer.setSceneData(node);
       viewer.realize();
       viewer.run();
       CDialogEx::OnOK();
}

二、编译osgEarth

2.1 下载数据

OSGEARTH

https://github.com/gwaldron/osgearth/tree/master

Sqlite3

https://sqlite.org/download.html

glew

https://glew.sourceforge.net/

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

2.2 编译sqlite3(这一步可以忽略,我用了GDAL内的sqlite3)

为了方便各位用自己指定的版本我这里写了sqlite3的编译方法。

2.2.1 解压

在这里插入图片描述

2.2.2 使用vs2019的native 编译

在这里插入图片描述

2.2.3 整理编译后的文件

在这里插入图片描述

2.3 解压glew库文件

2.3.1 整理文件

在这里插入图片描述

2.4 使用Cmake编译osgEarth

2.4.1 新建build文件夹(建议放在master同级)

在这里插入图片描述

2.4.2 做编译前的准备

  3rdParty_x64、gdal381-x64-vs2019(自己编译好的gdal 可参考 windows下VS2019编译GDAL、PROJ全教程_pkg编译gdal proj库-CSDN博客)、glew、OSG
在这里插入图片描述

  鉴于我编译是遇到的多个问题,我这里着重提醒下。 GDAL库最好用自己编译好的或者另外下载,3rdParty_x64虽然有gdal但是我使用的时候编译失败了,你可以试试能否成功。如果不成功最好下载一个标准库或者自己编译一次GDAL。

2.4.3 使用Cmake配置(configure)

  以下仅代表我个人的配置截图,你们可以自行调整。
在这里插入图片描述
在这里插入图片描述
我这边编译时发现少了lerc的源码,因此需要单独下载并放到(E:\005Lib\001\osgearth\osgearth-master\src\third_party\lerc)下。
GitHub - Esri/lerc at 19542a00b9a8b5c1089f74239e5859e02e403212

  PS:“可忽略下面”
  如果你和我一样发现configure 没有error output。我这边建议你将cmake 的 bin 目录写到系统环境中的path中。
  然后调用cmake 进行验证是否configure无error

cd E:\005Lib\001\osgearth\build
cmake E:\005Lib\001\osgearth\osgearth-master
2.4.4 generate 生成osgEarth

   这一步的图我不补充了,因为忘记截图。

2.4.5 打开VS2019进行批生成

   分两次生成,第一次完成ALL_BUILD 第二此编译INSTALL。
在这里插入图片描述
在这里插入图片描述
补充一张生成成功的截图给各位,祝各位编译成功。
在这里插入图片描述

2.4.6 测试是否可以成功调用

  创建test.earth文件备用。

<map>
<GDALImage name="test">
    <url>world.tif</url>
</GDALImage>
</map>
1.从osgearth源文件目录下data文件夹下获取world.tiff文件
2.从osgearth库文件目录下的bin文件夹下获取osgearth_viewer.exe文件
3.拷贝动态库到同层目录

拷贝E:\006Library\006osgearth\OSG_3.7.0\bin*.dll
拷贝E:\006Library\006osgearth\osgearth_3.6.0\bin*.dll
拷贝E:\006Library\006osgearth\3rdParty_x64\bin*.dll
拷贝源码 E:\Osg\OpenSceneGraph-master\src\osgPlugins 文件夹
拷贝E:\006Library\006osgearth\gdal_3.8.1\bin*.dll
有冲突按照拷贝顺序先后进行覆盖。

4.执行osgearth_viewer test.earth,如出现三维地球即为成功。

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

三、编译osgQT

3.1 下载库

osgQT

https://github.com/mathieu/osgQt

QT5.15.2

https://download.qt.io/archive/online_installers/4.8/

也可以去官网下载最新版一样的结果

3.2 编译库

3.2.1使用Cmake 配置(Configure)

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

3.2.2使用Cmake 生成(generate)

忘记截图,你知道有这步骤就行。如果你走不下去私信我我想办法补上这段。

3.2.3 使用VS2019 编译

在这里插入图片描述

3.2.4 批生成 ALLBUILD Debug / Release

忘记截图,你知道有这步骤就行。如果你走不下去私信我我想办法补上这段。

3.2.5 批生成 Install Debug / Release

忘记截图,你知道有这步骤就行。如果你走不下去私信我我想办法补上这段。

3.2.6 测试库是否生效
1.从编译程序目录(E:\006Library\006osgearth\osgQT\build)文件目录下bin文件夹下获取osgviewerQt.exe文件
2.从(E:\OpenSceneGraph-Data-OpenSceneGraph-Data-3.4.0\)库文件目录下获取glider.osg文件
3.拷贝动态库到同层目录

拷贝E:\006Library\006osgearth\OSG_3.7.0\bin*.dll
拷贝E:\006Library\006osgearth\osgearth_3.6.0\bin*.dll
拷贝E:\006Library\006osgearth\3rdParty_x64\bin*.dll
拷贝源码 E:\Osg\OpenSceneGraph-master\src\osgPlugins 文件夹
拷贝E:\006Library\006osgearth\gdal_3.8.1\bin*.dll
有冲突按照拷贝顺序先后进行覆盖。

4.系统菜单找到Qt 5.15.2(MSVC 2019 64-bit)的bat文件并打开

在这里插入图片描述
输入windeployqt osgviewerQt.exe ,导入所需文件

4.在(osgviewerQt)文件夹下执行cmd , 执行osgviewerQt glider.osg,如出现滑翔机即为成功。
在这里插入图片描述
在这里插入图片描述
  完结撒花✿✿ヽ(°▽°)ノ✿

请多关注我吖!你们多关注,平台就能加精让更多人看到。

  看到这里实数不易,最后我想吐槽下。这个文档我查阅资料排除问题足足5天才完成。其中踩到无数坑,也证明了当前CSDN以及其他各个平台的文档重复率极高,且问题描述均不全面。希望我可以让你们在我的肩膀上省些力气,为国内遥感应用舔砖加瓦。最好是下次我不懂得问题你们正好分享!\(^o^)/~
新人创作不易,你们的点赞和足迹是我愿意继续分享工作中问题的动力,多多关注我,你们的关注数会让我更开心哦。

  对了如果文档出了问题,你们也可以去B站找我(龙溟漩),私信获取资料或者提问。我天天看B站应该更容易收到你们的消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值