带有SSSE3标志的ROS(机器人操作系统)

时间:2012-09-29 20:24:06

标签: x86 simd sse2 ros sse3

我最近开始使用ROS并且遇到了一个问题。我需要使用一些需要SSE2,SSE3和SSSE3 CPU扩展的类。

我尝试编辑我的ROS包的manifest.xml文件,如

<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>

但它不起作用!

代码在“Not-ROS-project”中运行良好,但不知怎的,编译器似乎忽略了cflags。

我正在使用LinuxMint(ubuntu 12.04),支持芯片扩展。

我需要在哪里放置标志?

1 个答案:

答案 0 :(得分:1)

需要在CMakeLists.txt文件中添加cflags,如:

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")
相关问题