前言
现在编译OsgEarth挺麻烦的,建议使用vcpkg编译,这样相关依赖的库:osg、gdal、curl、sqlite3、protobuf、geos、blend2d、libwebp、basisu、draco、libzip都可以依靠vcpkg自动下载编译。否则需要自己手动下载并编译,而且还要版本匹配,太麻烦了。前提是首先能科学上网!!!
首先下载vcpkg
vcpkg下载地址

使用git获取vcpkg源码,

使用vs2019命令行工具生成vcpkg.exe

(1)cd 到 E:\osgEarth\vcpkg\vcpkg 也就是bootstrap-vcpkg.bat同级目录下
(2)执行 .\bootstrap-vcpkg.bat
这时会生成vcpkg.exe

(3)安装 vcpkg
使用命令:vcpkg integrate install

下载PowerShell7
这时需要下载PowerShell7,否则vcpkg会提示你PowerShell版本过低
(1)PowerShell下载地址
选择:PowerShell-7.2.0-win-x64.msi

(2)安装PowerShell
编译OsgEarth
根据OsgEarth官方文档一步步编译
osgEarth编译步骤官方说明

(1)第一种:最简单的编译方法
a) 使用Developer PowerShell for VS 2022

b) 输入命令
vcpkg install osgearth:x64-windows

注意:中间遇到点问题:

解决办法:没有关系,再次执行命令:
vcpkg install osgearth:x64-windows

经过漫长等待2个多小时

至此编程osgearth成功
osg 的debug:dll

osg debug: lib

osg debug:头文件

osg的 Release:dll

osg 的Release: lib

osgearth 的Debug:dll

osgearth 的Debug:lib

osgearth头问题:

osgearth的release:dll

osgerath的Release: lib

如果自己不想花时间编译也可以从官网下载现成编译好osg的debug和release
OpenSceneGraph 3.6.5 (VC2022 2025/04 Build)
(2)第二种:使用vcpkg安装osgEarth依赖项 osg、gdal、curl
这里是使用PowerShell7命令行工具,在目录 E:\osgEarth\vcpkg\vcpkg 也就是vcpkg.exe同级目录:
在文件夹E:\osgEarth\vcpkg\vcpkg 空白处点击鼠标左键,选择“在Windows终端 预览版中打开”
输入命令 : .\vcpkg install osg:x64-windows gdal:x64-windows curl:x64-windows
注意命令前面有"." !!! 点和右斜杠,
还要注意假设你这里能访问谷歌,你懂的
我这里已经安装好了:osg、gdal、curl,如果下载很慢,你可以直接复制PowerShell提示的下载地址,手动下载osg、gdal、curl,你收到下载的osg、gdal、curl 压缩包,直接复制到E:\osgEarth\vcpkg\vcpkg\downloads 目录下

(2)在PowerShell中使用vcpkg下载所有osgEarth依赖包
'\vcpkg install sqlite3:x64-windows protobuf:x64-windows geos:x64-windows blend2d:x64-windows libwebp:x64-windows basisu:x64-windows draco:x64-windows libzip:x64-windows
同样的,如果下载慢,我们就自己手动下载,按照PowerShell给出的地址下载就可以,然后下载好的这些依赖包,复制到E:\osgEarth\vcpkg\vcpkg\downloads 目录下

(3)下载OsgEarth源码
直接使用PowerShell下载osgEarth
git clone --recurse-submodules https://github.com/gwaldron/osgearth.git osgearth

创建osgEarth编译目录
mkdir build
后面生成的OsgEarth.sln工程就放在build目录下

(4)CMake命令生成工具链
就是我们平时使用CMake gui 生成osgEarth,但是直接使用CMake gui生成的工程配置依赖非常麻烦,还是用vcpkg帮助我们生成osgEarth工程
cmake -S osgearth -B build -G “Visual Studio 15 2017 Win64” -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWIN32_USE_MP=ON -DCMAKE_INSTALL_PREFIX=[installroot] -DCMAKE_TOOLCHAIN_FILE=[vcpkgroot]\scripts\buildsystems\vcpkg.cmake
如果你安装了vs2019的话,
注意:(1)这里要修改命令路径:Visual Studio 15 2017 Win64改成 Visual Studio 16 2019
也就是去掉 Win64
(2)installroot 修改成:E:\osgEarth\vcpkg\vcpkg\build
(3)[vcpkgroot]\scripts\buildsystems\vcpkg.cmake修改成你vcpkg.cmake的实际路径
我这里路径是:E:\osgEarth\vcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake

所用这个命令修改成:cmake -S osgearth -B build -G “Visual Studio 16 2019” -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWIN32_USE_MP=ON -DCMAKE_INSTALL_PREFIX=E:\osgEarth\vcpkg\vcpkg\build -DCMAKE_TOOLCHAIN_FILE=E:\osgEarth\vcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake

(5)生成OsgEarth.sln vs2019工程
cmake --build build --target INSTALL --config RelWithDebInfo
这里会等待半个小时左右,取决于你的机器速度
(6)编译osgEarth工程

(7)生成osgEarth静态库和动态库
release版:osgEarth.lib和osgEarth.dll


debug版本 osgEarthd.lib和osgEarthd.dll

本文介绍使用vcpkg编译OsgEarth的方法。编译前需科学上网,先下载vcpkg,用vs2019命令行工具生成vcpkg.exe并安装,同时下载PowerShell7。编译OsgEarth可按官方文档操作,介绍了两种编译方式,还提及遇到问题的解决办法及依赖包手动下载方法。
8003





