워크스페이스 루트에서 colcon build

패키지 폴더 안에 들어가서 빌드하면 안 될까?

colcon

src의 패키지를 한꺼번에 빌드합니다

colcon은 빌드 도구입니다. src 아래 모든 패키지의 package.xml을 읽고, build_type에 맞는 방법으로 빌드합니다. 다른 패키지를 가져다 쓰는 패키지는, 가져다 쓰는 대상을 먼저 빌드한 뒤에 빌드합니다.

패키지 이름은 예시입니다. colcon은 2강 2편에서 깐 ros-dev-tools에 들어 있습니다.

치는 자리

워크스페이스 루트에서 칩니다

colcon은 명령을 친 폴더 아래에서 패키지를 찾아 빌드하고, build, install, log를 바로 그 자리에 만듭니다. 그래서 꼭 워크스페이스 루트인 ~/ros2_ws에서 칩니다.

따라 하기

루트로 가서 colcon build

cd ~/ros2_ws로 루트에 간 뒤 colcon build를 칩니다. Summary 줄에 finished가 보이면 빌드된 것입니다. ls로 보면 1편에서 본 네 폴더가 모두 생겼습니다.

걸린 시간은 컴퓨터마다 다릅니다. 출력에 --- stderr 경고가 섞여도 Summary가 finished면 성공입니다. 실패하면 Failed가 보이고 기록은 log에 남습니다.

잘못 친 경우

src에서 치면 엉뚱한 곳에 생깁니다

src에서 colcon build를 치면 src 안에 build, install, log가 생깁니다. 그러면 7편에서 source 할 install이 어느 것인지 헷갈립니다. 잘못 생긴 셋은 지우고 루트에서 다시 빌드합니다.

골라서 빌드

하나만 다시 빌드할 수도 있습니다

패키지가 많아지면 전부 빌드하는 데 오래 걸립니다. colcon build --packages-select my_package는 그 패키지 하나만 빌드합니다. --packages-up-to는 그 패키지가 가져다 쓰는 패키지까지 함께 빌드합니다.

이 옵션도 워크스페이스 루트에서 칩니다.

빌드가 하는 일

src의 코드를 install로 옮겨 놓습니다

파이썬은 컴파일하지 않지만, 빌드는 코드를 install 안에 설치합니다. 기본 빌드는 원본을 복사해 둡니다. 실행되는 것은 이 사본입니다.

python3.12는 Ubuntu 24.04의 파이썬 버전입니다. 이 복사 때문에 생기는 일은 8편에서 봅니다.

다음 편

빌드는 끝났는데 ros2 run이 패키지를 못 찾습니다

7편빌드했는데 왜 안 보일까? 5강 목록