osgEarth学习笔记1-安装osgEarth开发环境

原文链接

本文主要是为了防止丢失,做一些记录,仅供个人学习使用。

QGis的学习和使用基本告一段落了。日常的应用已经离不开QGis了,常用的QGis-API和跨平台的QT+QGis开发已经十分熟练了。涉及遥感和GIS领域的二维可视化、数据处理使用QT搭配QGis和GDAL基本能够完成绝大部分工作了。在我的工具箱里还缺少一件工具,就是遥感和GIS的三维可视化,也可以说是数字地球的相关开发。仍然是考虑到自己对C++更加熟悉,QT越用越熟,对其跨平台能力十分的崇拜,直接把目标定到OsgEarth上面。知道OsgEarth也是有些年头了,但是一直不得要领,一直没有成功的运行过相关的Demo。这次下定决心无论如何也要把这个工具掌握了。

当前是2021年11月初,我下载的版本记录如下,日后随着版本的升级以下方法也肯定会各种失败的。

osg:3.6.5

osgEarth:3.2.0

1 第三方的安装方法

之前看了各种csdn和知乎的安装方法,前后使用了两周多的业余时间尝试各种方案。问题是:各种网上的方案要么是版本太老了,要么是各种库的下载,各种依赖项缺失,因为你永远不会知道别人的机器已经安装了哪些库。各种安装方案失败以后,十分沮丧。

2 OsgEarth官网方法

最后不得不把目标定到OsgEarth官网的方法上。官网推荐使用vcpkg从源码安装。

在我的windows 上下载vcpkg,运行安装命令。无论是我家里的联通宽带、公司网、还是腾讯云的国内云主机,永远不会让你顺利的连接github下载相关的依赖库。沮丧的很。

最后决定花钱解决问题,上腾讯云买了1核2GB,50GB存储,最低配的海外云主机,系统windows server2012 ,地区首尔。首尔好像最便宜,70多元一个月。

2.1 远程登录首尔主机

安装firefox,慢的要死,忍了,毕竟1核2GB还要跑windows。

下载

https://github.com/Microsoft/vcpkg

解压缩,然后打开控制台,输入

bootstrap-vcpkg.bat

如果下载vcpkg.exe失败可以直接下载这个exe文件到目录下:

https://github.com/microsoft/vcpkg-tool/releases/download/2021-09-10/vcpkg.exe

2.2 开始安装osgEarth

在vcpkg的目录下打开控制台,输入命令

vcpkg install osgearth:x64-windows

漫长的等待。。。。

出现libxml2错误,手工下载(具体链接vcpkg会打印在控制台上,很奇怪,只有这个库从浏览器下载就可以,自动下载就是不行)放到vcpkg的downloads目录下,再次运行命令vcpkg install osgearth:x64-windows,vcpkg会接着上次运行的进度继续运行,这点太贴心了。

漫长的等待。。。。

终于可以运行到编译步骤了,最后占用了全部50GB的系统盘,提示编译失败。

在腾讯云花钱扩展到100GB,重启,再次执行上面命令(vcpkg install osgearth:x64-windows),从早上5点30到中午12点,cmake又提示超出内存。

再次充钱,花了80元升级到2核4GB内存,再次运行命令(vcpkg install osgearth:x64-windows)。再过了大概2-3小时,终于完成。

2.3初步测试编译是否成功

我的云主机应该是没有显卡这类硬件支持,运行demo失败。

将install打包以后,通过sftp或者邮件搞到自己的电脑里。

在 gwaldron-osgearth-**** git源代码解压目录下,拷贝

osgearth-.../tests/simple.earth

osgearth-.../data

到 .../installed/x64-windows/tools/osgearth 目录下,打开控制台,输入命令

osgearth_toc simple.earth 结果如下,下面第二图试了另一个demo。

x64编译成功以后,考虑到以后要与我的x86的QGis联合搭建软件平台,所以我又编译了x86版本的库,命令如下:

vcpkg install osgearth:x86-windows

编译完成后会在install目录下出现x86的构建后的结果子目录。

【完】

相关推荐
若亦_Royi1 小时前
C++ 的大括号的用法合集
开发语言·c++
eybk2 小时前
Pytorch+Mumu模拟器+萤石摄像头实现对小孩学习的监控
学习
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
Aileen_0v03 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
守护者1704 小时前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
学会沉淀。4 小时前
Docker学习
java·开发语言·学习
Rinai_R4 小时前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
吃着火锅x唱着歌4 小时前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
ragnwang4 小时前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
胡西风_foxww5 小时前
【es6复习笔记】rest参数(7)
前端·笔记·es6·参数·rest