这里先吐槽一句 osgearth 这家厂商从没考虑操作系统的架构,必须吐槽
这里使用源码编译的方式优雅安装
代码仓库 :https://github.com/gwaldron/osgearth
arm架构替换指令集: “https://gitcode.net/mirrors/dltcollab/sse2neon?utm_source=csdn_github_accelerator”
安装步骤:
1.遇到已经安装的子包怎么办:
sudo dpkg -i --force-overwrite ***path*
#强制安装
- 安装依赖
sudo apt-get install libglu1-mesa-dev libgl1-mesa-dev libosgearth-dev libosgearthUtil-dev libosgearthFeatures-dev libosgearthAnnotation-dev
3.编译和安装OSGEarth:
cd osgearth
mkdir build
cd build
cmake .. # 这里来很坑装的包 看步骤1 中的招解决即可
make -j4 # 这一步遇到到问题会很多 烦请chatGPT
sudo make install
历史上最坑的莫过于 make 过程中报错是架构指令集不支持的场景,怎么办?
看看 “麒麟 Linux大神写的帖子” aarch64架构编译osgearth2.10过程中报错,找不到emmintrin.h_鱼月半的博客-CSDN博客 第八句话 ,就是自己下载指令集,放在自己工程目录下;
注意这个库只有X86架构才能用 别的架构不能用,emmintrin.h是Intel的编译器套件(Intel Compiler Suite)中的一个库文件头文件。因为Intel编译器套件主要面向X86体系结构,在Arm体系结构中不能直接使用emmintrin.h库文件。
在Arm平台上,可以使用Neon指令集实现类似于SSE、SSE2、SSE3和SSE4指令集的功能。Arm体系结构中相应的头文件名称为arm_neon.h。该库文件包含了许多实现SIMD指令的内联函数,可用于Arm Cortex-A和Cortex-R处理器的开发。可以使用GCC或Clang编译器来使用arm_neon.h头文件。
这里贴上下载地址: https://github.com/DLTcollab/sse2neon/ 将下载后sse2neon.h 文件放到工程报错的目录下 并修改头文件中 #include <emmintrin.h> 为 #include <sse2neon.h>
重新make 即可
阿西吧 装这个花了很多时间
运行:
osg_view ~/osgearth/test/simple_earth.*