首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Odroid XU4上编译NEON代码

在Odroid XU4上编译NEON代码
EN

Stack Overflow用户
提问于 2015-10-09 19:32:17
回答 1查看 1.8K关注 0票数 1

我有一个ROS节点,其中包含由Matlab编码器生成的代码。此代码是为使用ARM Cortex A CPU上的NEON指令集而生成的。我想在硬内核Odroid XU4上编译这段代码(它运行在三星Exynos5422 Cortex™-A15 2 2Ghz和Cortex™-A7 Octa核心CPU上)。但是,我没有成功地编译/链接我的代码。

我在包CMakeLists.txt中添加了以下编译器标志:

代码语言:javascript
复制
 -mfloat-abi=softfp -mfpu=neon -O2.

但是,在编译过程中,我会收到以下错误消息:

代码语言:javascript
复制
/usr/lib/gcc/arm-linux-gnueabihf/4.8/include/arm_neon.h:32:2: error:
#error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h

接下来是关于未知类型的更多错误:

代码语言:javascript
复制
/home/odroid/catkin_ws/src/vio_ros/src/codegen/mw_neon.c:12:2: error: unknown type name ‘float32x4_t’
/home/odroid/catkin_ws/src/vio_ros/src/codegen/mw_neon.c:36:2: error: unknown type name ‘int32x4_t’
...

还有更多。这些类型似乎都是在arm_neon.h中定义的。

我需要做些什么才能编译我的代码?

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 12:14:24

我已经弄清楚问题出在哪里了。由于在这个C++项目中编译的一些代码是C代码,所以我还必须为C设置编译器标志,包括CMakeLists.txt中的以下内容使代码编译:

代码语言:javascript
复制
set(NEON_FLAGS "-DENABLE_NEON -mfloat-abi=hard -mfpu=neon-vfpv4 -mcpu=cortex-a15 -Ofast")
set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS} -Wno-format-security ${NEON_FLAGS}")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NEON_FLAGS}")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33045812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档