firefly3588 发表于 2022-6-2 09:07:11

Ubuntu编译osgEarth出错的解决

本帖最后由 firefly3588 于 2022-6-2 09:21 编辑

从官网下载好的osgEarth编译时出错
/home/firefly/ows/3D/Demo/gwaldron-osgearth-ac7c31d/src/osgEarthDrivers/fastdxt/intrinsic.cpp:42:10: fatal error: emmintrin.h: No such file or directory
   42 | #include <emmintrin.h>// sse2
      |          ^~~~~~~~~~~~~
compilation terminated.
make: *** Error 1
make: *** Error 2
make: *** Error 2原因是:


emmintrin.h这个头文件,本身不是在aarch64中使用的指令集,需要将其改写为neon的代码,即在arm架构下可以使用的指令集。

这一步操作,英特尔提供了相应的函数sse2neon.h。
sse2neon.h的使用方法很简单,先将其放入/usr/local/include或者/usr/include或者你的代码工程下,总之就是要能调用到,而后修改代码中原本的#include <emmintrin.h>为#include <sse2neon.h>即可使用。

sse2neon.h的下载地址及使用方法
https://github.com/DLTcollab/sse2neon/
页: [1]
查看完整版本: Ubuntu编译osgEarth出错的解决