2015-10-09 9 views
0

У меня есть узел ROS, содержащий код, созданный кодером Matlab. Этот код был создан для использования набора команд NEON на процессорах ARM Cortex A. Я хочу скомпилировать этот код на Hardkernel Odroid XU4 (который работает на процессоре Samsung Exynos5422 Cortex ™ -A15 2Ghz и Cortex ™ -A7 Octa). Однако мне не удается составить/увязать мой код.Компиляция кода NEON на Odroid XU4

Я добавил следующие флаги компилятора в пакетах 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

Что мне нужно сделать, чтобы скомпилировать мой код?

Спасибо за вашу помощь

+0

Вы включая arm_neon .час? Можете ли вы разместить небольшой образец кода и make-файла? – BitBank

+0

Я понял, что случилось. См. Мой ответ – Nicolas

ответ

0

я понял, что проблема была. Так как некоторые из кода при компиляции в этом 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}") 

 Смежные вопросы

  • Нет связанных вопросов^_^