크로스 컴파일: PC에서 ARM 보드용 빌드
성능이 좋은 PC에서 다른 아키텍처용 실행 파일을 만드는 툴체인. sysroot와 라이브러리 버전이 맞아야 보드에서 돕니다.
왜 크로스 컴파일인가
임베디드 보드에서 직접 빌드하면 느리고 저장 공간도 부족합니다. x86 PC에서 ARM용 실행 파일을 만들어 보드로 옮깁니다.
툴체인 이름
aarch64-linux-gnu-gcc = 대상 아키텍처(aarch64) - 운영체제(linux) - ABI(gnu) - 도구(gcc)
| 대상 | 툴체인 예 |
|---|---|
| 64비트 ARM 리눅스 | aarch64-linux-gnu- |
| 32비트 ARM 리눅스 (하드 float) | arm-linux-gnueabihf- |
| MCU (운영체제 없음) | arm-none-eabi- |
aarch64-linux-gnu-gcc -o hello hello.c
file hello # ELF 64-bit LSB executable, ARM aarch64
scp hello root@board:/tmp/
무료 전자책이 주제를 한 권으로 이어 읽기 (PDF 3권)→sysroot
보드의 헤더 파일과 라이브러리 묶음입니다. 보드에 설치된 glibc 버전보다 새 버전으로 빌드하면 "GLIBC_2.34 not found" 같은 오류가 납니다. 보드 이미지를 만든 Yocto/Buildroot가 만들어 준 SDK의 툴체인과 sysroot를 쓰면 맞습니다.
빌드 시스템
CMake에서는 툴체인 파일로 컴파일러와 sysroot를 지정합니다. 보드 GDB 서버(gdbserver)와 PC의 gdb-multiarch를 연결하면 원격 디버깅도 됩니다.
영상으로 이어 보기제품은 어떻게 동작할까 시리즈 8편하늘 위 떠다니는 드론은 어떻게 동작할까? 프로펠러 4개로 뜨고 기우는 원리부터 비행 제어기 · PID · 센서 퓨전까지FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →