arm-none-eabi-gdb 실행 시 libncurses.so.5 오류 해결하기
arm-none-eabi-gdb는 ARM 아키텍처 기반의 베어메탈(운영체제 없는) 임베디드 시스템에서 동작하는 소프트웨어를 디버깅하기 위해 설계된 GNU 디버거(GDB)의 특수 버전으로, ARM 프로세서에서 실행되는 코드를 단계별로 실행하고, 변수 값을 검사하며, 브레이크포인트를 설정하는 등의 고급 디버깅 기능을 제공하여 임베디드 개발자들이 마이크로컨트롤러 프로그래밍, IoT 디바이스 개발, 저수준 소프트웨어 구현 등의 작업을 효과적으로 수행할 수 있도록 도와주는 핵심적인 개발 도구입니다. arm-none-eabi-gdb 실행 시 발생하는 라이브러리 관련 오류와 그 해결 방법에 대해 알아보겠습니다.
문제메시지
아래 오류는 arm-none-eabi-gdb 실행 시 필요한 libncurses.so.5 라이브러리를 시스템에서 찾을 수 없어 발생하는 것으로, 해당 라이브러리를 설치하거나 시스템에 이미 존재하는 유사한 버전의 라이브러리와 심볼릭 링크를 생성하여 해결할 수 있는 일반적인 공유 라이브러리 의존성 문제를 나타냅니다.
$ arm-none-eabi-gdb
arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: \cannot open shared object file: No such file or directory
즉, arm-none-eabi-gdb
가 실행되기 위해 필요한 libncurses.so.5
라이브러리를 시스템에서 찾지 못해 발생합니다.
해결 방법
리눅스 시스템에서 발생하는 이 문제는 필수 라이브러리가 누락되어 발생하며, 운영체제 종류에 따라 다음과 같이 해결할 수 있습니다.
Ubuntu나 Debian 계열 리눅스 사용자의 경우
터미널에서 다음 명령어를 실행하세요.
sudo apt-get install libncurses5
- sudo: 관리자 권한으로 실행
- apt-get: 패키지 관리 도구
- libncurses5: 터미널 인터페이스를 위한 기본 라이브러리
Fedora나 Red Hat 계열 리눅스 사용자의 경우
터미널에서 다음 명령어를 실행하세요.
sudo dnf install ncurses-compat-libs
- sudo: 관리자 권한으로 실행
- dnf: 패키지 관리 도구
- ncurses-compat-libs: 이전 버전과의 호환성을 위한 ncurses 라이브러리
설치가 완료되면 시스템을 다시 시작하거나 관련 프로그램을 재실행하여 정상 작동하는지 확인하시면 됩니다. 위와 같이 설치하고 아래의 명령어를 실행하면 arm-none-eabi-gdb 가 정상적으로 실행되는 것을 볼 수 있습니다.
관련 링크
더 자세한 정보를 원하시는 분들을 위해 몇 가지 유용한 링크를 소개합니다:
- ARM Developer - GNU Arm Embedded Toolchain: ARM에서 제공하는 공식 GNU 툴체인 정보와 다운로드 링크를 확인할 수 있습니다.
- GDB: The GNU Project Debugger: GDB에 대한 공식 문서로, 사용법과 기능에 대해 자세히 알아볼 수 있습니다.
- Stack Overflow - "arm-none-eabi-gdb: error while loading shared libraries" 관련 질문: 비슷한 문제를 겪은 다른 개발자들의 해결 방법을 확인할 수 있습니다.
'Programming' 카테고리의 다른 글
moviepy 임포트시 ModuleNotFoundError 에러 (0) | 2024.12.10 |
---|---|
Electron으로 리액트앱 패키징하기 (2) | 2024.11.30 |
Hello World로 시작하는 리액트 네이티브 (1) | 2024.11.30 |