我有一个ROS节点,其中包含由Matlab编码器生成的代码。此代码是为使用ARM Cortex A CPU上的NEON指令集而生成的。我想在硬内核Odroid XU4上编译这段代码(它运行在三星Exynos5422 Cortex™-A15 2 2Ghz和Cortex™-A7 Octa核心CPU上)。但是,我没有成功地编译/链接我的代码。
我在包CMakeLists.txt中添加了以下编译器标志:
-mfloat-abi=softfp -mfpu=neon -O2.但是,在编译过程中,我会收到以下错误消息:
/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接下来是关于未知类型的更多错误:
/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中定义的。
我需要做些什么才能编译我的代码?
谢谢你的帮忙
发布于 2015-11-23 12:14:24
我已经弄清楚问题出在哪里了。由于在这个C++项目中编译的一些代码是C代码,所以我还必须为C设置编译器标志,包括CMakeLists.txt中的以下内容使代码编译:
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}")https://stackoverflow.com/questions/33045812
复制相似问题