osgEarth源码编译(Win10+VS2019+OSG3.6.5+osgEarth2.10.0)

因工作需要,学习了OSG、osgEarth。

虽然OSG、osgEarth是开源软件,但我个人感觉,要从源码生成能用的软件版本还是有困难的。有时第三方库不完整、有时需要匹配各个软件配置项的版本;经常是编译出来的软件无法正常运行。

我零零散散使用了将近一个多月时间,才创建了一个能在Win10中正常运行的软件。总结一下,希望能为大家节省一些学习的时间。

1. 第三方组件下载及解压缩

下载网址:

Dependencies

我选择的是:

下载完成后,得到的压缩包名为“3rdParty_VS2017_v141_x64_V11_full.7z”。是由VS2017(v141)生成的第三方库。

解压后,将其保存在目录“D:\OSGCore\Bulid\3rdParty”中。

将目录“D:\OSGCore\Bulid\3rdParty\bin”加入系统环境变量Path中

2. OSG数据资源的下载

下载网址:

Data Resources

下载完成后,得到的压缩包名为“OpenSceneGraph-OpenSceneGraph-3.4.0.zip”。

解压后,将其保存在目录“D:\OSGCore\Bulid\OpenScenGraph-Data”中。

添加系统环境变量 OSG_FILE_PATH ,值为 D:\OSGCore\Bulid\OpenScenGraph-Data 。

3. CMake的下载和安装

下载网址:

Download | CMake

我当时下载的是: cmake-3.20.1-windows-x86_64.msi

安装目录:C:\Program Files\CMake

4. OSG3.6.5的下载、编译及配置

下载网址:

Stable releases

 

 下载完成后,得到的压缩包名为“OpenSceneGraph-OpenSceneGraph-3.6.5.zip”,将其解压到目录“D:\OsgEarth\OpenSceneGraph-3.6.5”。

CMake初始配置

运行CMake。

将目录“D:\OsgEarth\OpenSceneGraph-3.6.5”中的“CMakeLists.txt”拖放到CMake中。

在CMake界面点击“Configure”按钮。

 我的电脑上已安装了VS2019,点击“Finish”。CMake会产生初始配置(需做些修改)。

指定ACTURAL_3RDPARTY_DIR

将ACTURAL_3RDPARTY_DIR的值指定为第三方组件所在的目录,即“D:\OSGCore\Bulid\3rdParty”。

 指定FREETYPE

若不指定该项的值,osgEarth显示地球时,可能会提示错误信息“arial.ttf : file not handled”。(关于在osgearth 中 出现 arial.ttf : file not handled 的问题 - 机智的小小帅 - 博客园

指定的值如下图所示:

做上述修改后,再点击“Configure”按钮,进行配置,配置完成后,点击“Generate”,在“D:/OsgEarth/OpenSceneGraph-3.6.5/build”目录中生成解决方案(扩展名为sln的文件)。再点击“Open Project”,由VS2019打开解决方案。

MSVC v141 – VS2017 C++ x64/x86 生成工具(v14.16)的安装(若已安装,可跳过)

由于使用的第三方组件是由VS2017(v141)生成的“3rdParty_VS2017_v141_x64_V11_full.7z”。为了使得基于osgEarth开发的软件能够正常调试和运行,需要将OSG和osgEarth使用相同的编译器进行编译。

开始菜单àVisual Studio Installer

在主界面点击“修改”按钮

勾选“MSVC v141 – VS2017 C++ x64/x86 生成工具(v14.16)”,点击“下载时安装”,程序自动从网站下载并完成安装。

在VS2019中设置项目工具集 

在解决方案的“类视图”中,利用shift键选中所有项目,右键单击,在弹出菜单中点击“属性”,弹出“属性页”对话框。在“平台工具集”右侧的下拉列表中选择“Visual Studio 2017(v141)”。点击“应用”“确定”按钮使设置生效。

完成上述设置后(Release和Debug版都需要设置),即可开始生成。由于项目较多,编译时间需几个小时

OSG生成后的相关设置

在“D:\OSGCore\Bulid”目录中创建“OpenSceneGraphic”,并在其中创建目录include, lib, bin。

头文件复制。将目录“D:\OsgEarth\OpenSceneGraph-3.6.5\include”和“D:\OsgEarth\OpenSceneGraph-3.6.5\build\include”中的所有文件复制建立的include目录中。

库文件复制。将目录“D:\OsgEarth\OpenSceneGraph-3.6.5\build\lib”中的文件复制到建立的lib目录中。

可执行文件复制。将目录“D:\OsgEarth\OpenSceneGraph-3.6.5\build\bin”中的文件复制到建立的bin目录中。

添加系统环境变量 OSG_ROOT,值为 D:\OSGCore\Bulid\OpenSceneGraphic。

将目录“D:\OSGCore\Bulid\bin”添加到系统环境变量Path中

OSG运行正确性测试

在命令行窗口输入命令“osgviewer cow.osg”,如显示出奶牛,则说明OSG正常运行。

5. osgEarth2.10.0的下载、安装及编译 

下载网址:

https://codeload.github.com/gwaldron/osgearth/zip/osgearth-2.10

(其他版本下载方法:在osgEarth官网首页点击“View on GitHub”,进入GitHub网页,在网页的主体的左上角的”master“按钮右侧,点击倒置的小三角,可以看到其他的版本)。

下载完成后,得到的压缩包名为“3rdParty_VS2017_v141_x64_V11_full.7z”。是由VS2017(v141)生成的第三方库。

下载完成后,得到的压缩包名为 “osgearth-osgearth-2.10.zip”中。

解压后,将其保存在目录“D:\OsgEarth\osgearth-osgearth-2.10”中。

OsgEarth2.10.0的编译

运行CMake。

将目录“D:\OsgEarth\osgearth-osgearth-2.10”中的“CMakeLists.txt”拖放到CMake中。

在CMake界面点击“Configure”按钮。

我的电脑上已安装了VS2019,点击“Finish”。CMake会产生初始配置(需做些修改)。

 指定THIRD_PARTY_DIR

 将THIRD_PARTY_DIR的值指定为第三方组件所在的目录,即“D:\OSGCore\Bulid\3rdParty”。

指定CURL

 指定的值如下图所示:

指定GDAL 

做上述修改后,再点击“Configure”按钮,进行配置,配置完成后,点击“Generate”,在“D:\OsgEarth\osgearth-osgearth-2.10\build”目录中生成解决方案(扩展名为sln的文件)。再点击“Open Project”,由VS2019打开解决方案。

在VS2019中设置项目工具集 

在类视图中选中所有项目,在属性页对话框的“平台工具集”右侧的下拉列表中选择“Visual Studio 2017(v141)”。点击“应用”“确定”按钮使设置生效。

生成Release和Debug版本。需消耗几小时。

osgEarth生成后的相关设置 

 在“D:\OSGCore\Bulid”目录中创建“OsgEarth”,并在其中创建目录include, lib, bin。

头文件复制。将目录“D:\OsgEarth\osgearth-osgearth-2.10\src”中的所有文件复制建立的include目录中。

库文件复制。将目录“D:\OsgEarth\osgearth-osgearth-2.10\build\lib\Release”和“D:\OsgEarth\osgearth-osgearth-2.10\build\lib\Debug”中的文件复制到建立的lib目录中。

可执行文件复制。将目录“D:\OsgEarth\osgearth-osgearth-2.10\build\bin\Release”和“D:\OsgEarth\osgearth-osgearth-2.10\build\bin\Debug”中的文件复制到建立的bin目录中。

osgEarth数据文件复制。将“D:\OsgEarth\osgearth-osgearth-2.10\data”以及“D:\OsgEarth\osgearth-osgearth-2.10\tests”中的文件复制到目录“D:\OSGCore\Bulid\OpenScenGraph-Data”中。

将目录“D:\OSGCore\Bulid\OsgEarth\bin”添加到系统环境变量Path中

osgEarth运行正确性测试

 在命令行窗口输入命令“osgearth_viewer gdal_multiple_files.earth”,如显示出地球,则说明osgEarth正常运行。

下一篇:  VS2019新建osgEarth项目时,GL.h文件提示报错

  • 18
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alexabc3000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值