Firefly开源社区

[应用开发] Ubuntu编译osgEarth出错的解决

46

积分

0

威望

0

贡献

技术小白

积分
46
发表于 2022-6-2 09:07:11     
本帖最后由 firefly3588 于 2022-6-2 09:21 编辑

从官网下载好的osgEarth编译时出错
  1. /home/firefly/ows/3D/Demo/gwaldron-osgearth-ac7c31d/src/osgEarthDrivers/fastdxt/intrinsic.cpp:42:10: fatal error: emmintrin.h: No such file or directory
  2.    42 | #include <emmintrin.h>  // sse2
  3.       |          ^~~~~~~~~~~~~
  4. compilation terminated.
  5. make[2]: *** [src/osgEarthDrivers/fastdxt/CMakeFiles/osgdb_fastdxt.dir/build.make:115: src/osgEarthDrivers/fastdxt/CMakeFiles/osgdb_fastdxt.dir/intrinsic.cpp.o] Error 1
  6. make[1]: *** [CMakeFiles/Makefile2:2536: src/osgEarthDrivers/fastdxt/CMakeFiles/osgdb_fastdxt.dir/all] Error 2
  7. make: *** [Makefile:130: all] 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/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表