2

私は最近 ROS を使い始めましたが、1 つの問題に行き詰まりました。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) に取り組んでおり、チップ拡張をサポートしています。

フラグはどこに置く必要がありますか?

4

1 に答える 1

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")
于 2012-09-30T11:43:02.310 に答える