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

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

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

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

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

下载网址:

http://www.openscenegraph.org/index.php/download-section/dependencies

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

我选择的是:

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

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

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

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

2. OSG数据资源的下载

下载网址:

http://www.openscenegraph.org/index.php/download-section/data

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

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

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

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

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

3. CMake的下载和安装

下载网址:

https://cmake.org/download/

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

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

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

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

下载网址:

http://www.openscenegraph.org/index.php/download-section/stable-releases

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

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

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

CMake初始配置

运行CMake。

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

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

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

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

指定ACTURAL_3RDPARTY_DIR

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

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

 指定FREETYPE

若不指定该项的值,osgEarth显示地球时,可能会提示错误信息“arial.ttf : file not handled”。(https://www.cnblogs.com/XiaoXiaoShuai-/p/12247425.html

指定的值如下图所示:

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

做上述修改后,再点击“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

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

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

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

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

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

在VS2019中设置项目工具集 

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

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

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

OSG生成后的相关设置

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

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

头文件复制。将目录“D:\OsgEarth\OpenSceneGraph-3.6.5\src”和“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正常运行。

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

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

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

下载网址:

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

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

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

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

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

OsgEarth2.10.0的编译

运行CMake。

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

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

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

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

 指定THIRD_PARTY_DIR

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

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

指定CURL

 指定的值如下图所示:

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

指定GDAL 

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

做上述修改后,再点击“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。

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

头文件复制。将目录“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:\OSGCore\Bulid\OpenScenGraph-Data”中。

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

osgEarth运行正确性测试

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

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

上一篇:WIN10+VS2019+CUDA10.2+ZED2i配置过程


下一篇:VS2019编译OpenSSL源码