catkin_make, cmake,catkin build 차이
7526 단어 ROScatkin_makecatkinbuild
1.1 Legacy Catkin Workflow
핵심적인 Catkin 메타데이터 구축 시스템의 최초 설계 목적은 서로 의존하지만 독립적으로 개발한 많은 CMake 프로젝트를 효율적으로 구축하기 위한 것이다.로봇운영체제(ROS) 커뮤니티에서 개발한 것으로, 애초 표준원 구축 도구인 rosbuild의 상속자였다.ROS 커뮤니티의 분포식 개발 모델은 많은 모듈화 프로젝트를 포함하고 분배 가능한 바이너리 패키지를 구축하는 수요가 시스템의 설계를 추진했다. 이 시스템은 다양한 프로젝트를 효과적으로 통합시켜 하나의 목표 의존 트리를 이용하여 공간을 구축했다.
이 합병의 구축 과정을 편리하게 하기 위해 작업 공간의 src에 샘플화된 top-level cmakelt를 포함합니다.txt, 밑에 있는 모든 Catkin Cmake 프로젝트를 하나의 대형 Cmake 프로젝트에 자동으로 추가합니다.
그 다음에 사용자는 표준 CMake 원본 외에 작업 흐름을 구축하는 것과 유사한 작업 흐름을 사용하는 하나의 통일된 Cmake 프로젝트를 사용하는 것처럼 이 프로젝트 집합을 구축할 것이다.그것들은 모두 cmake 호출을 한 번 설정한 다음에 한 번 또는 여러 번make 호출을 사용하여 목표를 구축합니다
$ mkdir build
$ cd build
$ cmake ../src
$ make
통합 프로세스를 자동화하기 위해 Catkin은 명령행 도구catkin 을 사용합니다.make 발표.이 명령은 이러한 CMake 워크플로우를 자동으로 실행하고 표준 약정에 따라 변수를 설정합니다.이 기본값들은 다음 명령을 실행합니다
$ mkdir build
$ cd build
$ cmake ../src -DCATKIN_DEVEL_SPACE=../devel -DCMAKE_INSTALL_PREFIX=../install
$ make -j<number of cores> -l<number of cores> [optional target, e.g. install]
이 방법의 장점 중 하나는 전체 설정이 각 가방을 단독으로 설정하는 것보다 작고 Make 목표는 의존 가방 사이를 병행화할 수 있다는 것이다.그러나 실천에서 이것은 대형 작업 공간에서 하나의 가방을 수정하는 CMakeLists를 의미한다.txt는 전체 작업 공간의 모든 패키지를 다시 설정해야 합니다.그러나 이런 방법의 관건적인 결함은 고장 격리가 없다는 것이다.leaf 패키지 (의존 항목이 없는 패키지) 의 오류가 모든 패키지의 설정을 막습니다.패키지에 충돌하는 대상 이름이 있을 수 있습니다.만약에 한 가방이 다른 가방에 필요한 변수를 정의한다면 합병된 구축 과정은 CMake 오류가 검출되지 않고 독립된 가방 구축 순서에 의존할 수도 있습니다.패키지가 하나의 단독 CMake 호출에 통합되었기 때문에, 이러한 방법은 개발자에게 의존항 내의 일부 목표에 현저한 의존항을 지정하도록 요구한다.
통합 구축 프로세스의 또 다른 단점은 Catkin Cmake 패키지로만 구성된 동일한 구성 작업 영역에서만 작업할 수 있다는 점입니다.일반적인 CMake 패키지와 autotools 패키지 같은 다른 종류의 패키지는 하나의 설정과 하나의 구축 절차에 통합될 수 없습니다.
1.2 Isolated Catkin Workflow
구축 과정과 캣킨-make 도구의 많은 결함을 통합시켜캣킨make_isolated 도구의 개발캣킨과make가 다르다,catkinmake_isolated 명령은 격리된 구축 과정을 사용합니다. 패키지마다 독립적으로 설정하고 구축하며 환경에 불러옵니다.
이렇게 하면 모든 가방은 독립적으로 구축되고 다음 가방은 현재 가방의 원자 결과에 구축된다.이것은 목표 충돌, 목표 의존 항목 관리와 프로젝트 간의 다른 원하지 않는 교차 대화 문제를 해결했다.일반 CMake나 autotools와 같은 다른 구축 도구의 동체 자동화도 허용한다.
catkin_make_isolated 워크플로우에서는 다음 기능도 사용할 수 있습니다.
1.3 Parallel Isolated Catkin Workflow and catkin build
catkin_make_isolated의 한계성과 추가적인 고급 구축 도구가 필요한 수요로 인해 병행 버전의 catkin make isolated 또는 pcmi의 개발이 프로젝트 Tango의 일부로 이루어졌다.pcmi는 나중에 이 프로젝트에 포함된catkin 명령의 구축 동사가 되었다.
캣킨만 빼고는..make와 catkinmake_isolated의 기능인 catkin build에는 다음과 같은 기능도 있습니다.
2cmake와 캣킨make 차이점
3.1 catkin_make와catkin build의 중요한 차이
캣킨과make는 다르다 **,catkin 명령행 도구는 단순한 cmake와make 명령의 포장이 아니다.**catkin 구축 명령 ** 작업 공간의 원본 공간에서 각각의 패키지를 단독으로 구축하여 구축할 때cross-talk를 방지합니다.**따라서 가장 간단한 사용 중,catkin build의 행동은 병렬 버전의catkin 과 유사하다make_isolatied
문서의 나머지 부분에서catkin 도구의 더 많은 특성을 설명하였지만, 본 장에서는catkin 을 어떻게 사용하는지 상세하게 소개하였다.make와 catkinmake_isolated를 catkin make로 변경합니다.이 장에서는 catkin 도구가 catkin 에 있음을 설명하지 않습니다make와 catkinmake_isolated에서 제공하는 고급 기능입니다.캣킨 구축을 어떻게 사용하는지 빠르게 이해하려면cheat 참조sheet.
3.2 아이솔레이션의 의미
캣킨에게make_isolated와catkin build에서 격리 컴파일링(build isolation)은 다음과 같은 의미를 가진다.
3.3 캣킨 build과 캣킨make_isolated의 차이
catkin 시리즈 도구의 생성은 더 좋은build을 위해 cmake로 구축된 Pkg,catkinmake는 cmake의 업그레이드 버전으로 cmake를 한층 더 봉인하는 고급 명령이라고 볼 수 있습니다.그리고 캣킨...make_isolated, 비교catkinmake의 개선 사항 중 하나는 작업 공간 아래의 모든 Pkg을 독립적으로 컴파일하는 것이다. 단점은catkin 보다 컴파일 시간이 짧다는 것이다.make 더 길어요.마지막으로 캣킨 build, 캣킨 개선make_isolated 및 catkinmake, 작업 공간에서 매 Pkg을 독립적으로 컴파일할 수 있고 사용이 더욱 편리하며 사용자에게 명령이 더욱 우호적입니다.
4 catkin build 사용
mkdir -p /tmp/quickstart_ws/src # Make a new workspace and source space
cd /tmp/quickstart_ws # Navigate to the workspace root
catkin init # Initialize it with a hidden marker file
catkin create pkg pkg_a # Populate the source space with packages...
catkin create pkg pkg_b
catkin create pkg pkg_c --catkin-deps pkg_a
catkin create pkg pkg_d --catkin-deps pkg_a pkg_b
catkin list # List the packages in the workspace
catkin build # Build all packages in the workspace
source /tmp/quickstart_ws/devel/setup.bash # Load the workspace's environment
catkin clean # Clean all the build products
catkin init를 호출하여 이름을 만듭니다.catkintools의 숨겨진 디렉터리로 디렉터리 경로를 표시합니다.이 숨겨진 디렉터리는 부모 디렉터리를 Catkin 작업 영역의 루트 디렉터리로 지정하고 작업 영역 설정에 대한 지속적인 정보를 저장합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Gazebo 시뮬레이터로 AR drone 2.0을 웹에서 조작농업이나 경비라든지 화상 인식할 수 있는 정보 수집 드론에 개인의 지속은 외로운 것입니다. 다음에 시뮬레이터 내의 드론을 웹과 GUI의 인터페이스에서 조작할 수 있도록 했습니다. 참고로 한 것은 이쪽 ※ROS의 ca...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.