2012-09-29 3 views
2

최근 ROS 작업을 시작하여 한 가지 문제에 봉착했습니다. SSE2, SSE3 및 SSSE3 CPU 확장이 필요한 클래스를 사용해야합니다.SSSE3 플래그가있는 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 패키지의 manifest.xml 파일을 편집 할 시도했지만 작동하지 않았다!

코드는 "Not-ROS 프로젝트"에서 제대로 작동하지만, 어떻게 든 cflags는 컴파일러에서 무시되는 것 같습니다.

LinuxMint (우분투 12.04)에서 칩 익스텐션을 지원하고 있습니다.

어디 플래그를 넣어야합니까?

답변

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") 
관련 문제