我最近开始使用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),支持芯片扩展。
我需要在哪里放置标志?
答案 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")