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) с поддержкой расширений чипа.
Куда мне нужно поместить флаги?
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")