ROS (операционная система для роботов) с флагом SSSE3

Я недавно начал работать с ROS и застрял на одной проблеме. Мне нужно использовать некоторые классы, требующие расширения ЦП SSE2, SSE3 и SSSE3.

Я попытался отредактировать файл manifest.xml моего пакета ROS, например

<package>
  <description brief="topological_map_v1">
    topological_map_v1
  </description>
  <author>me</author>
  <license>BSD</license>
  <review status="unreviewed" notes=""/>
  <url>http://ros.org/wiki/topological_map_v1</url>

  <depend package="opencv2"/>
  <depend package="sensor_msgs"/>
  <depend package="rospy"/>
  <depend package="roscpp"/>

  <export>
     <cpp cflags="-msse2 -msse3 -mssse3 -I/ThirdParty/brisk -I/ThirdParty/brisk/agast"/>
     <intel_cpp cflags="-msse2 -msse3 -mssse3"/>
  </export>
</package>

но это не сработало!

Код отлично работал в «не-ROS-проекте», но компилятор каким-то образом игнорирует cflags.

Я работаю над LinuxMint (ubuntu 12.04) с поддержкой расширений чипа.

Куда мне нужно поставить флаги?


person SolvedForHome    schedule 29.09.2012    source источник


Ответы (1)


cflags необходимо добавить в файл CMakeLists.txt, например:

rosbuild_add_executable(ImgProcEngineNode src/ros_src/rosImgProcEngine.cpp)
rosbuild_add_compile_flags(ImgProcEngineNode "-c -O3 -fmessage-length=0 -march=native -msse2 -msse3 -mssse3 -I/home/me/topological_map/topological_map_v1/src/ThirdParty/brisk -I/home/me/topological_map/topological_map_v1/src/ThirdParty/brisk/agast")
person SolvedForHome    schedule 30.09.2012