Buildroot 간단한 C/C++ 애플리케이션 추가 및 실행
1. 개요
Buildroot를 사용하여 사용자 정의 애플리케이션을 추가하는 방법을 설명합니다. 본 예제에서는 간단한 C/C++ 애플리케이션을 작성하고, 이를 Buildroot의 패키지로 추가한 후, 빌드 및 실행하는 과정을 다룹니다.
2. 애플리케이션 코드 작성
먼저, 간단한 C 애플리케이션을 작성합니다. 이 애플리케이션은 "Hello, Buildroot!"를 출력하는 기능을 수행합니다.
소스 코드 예제 (hello.c
)
#include <stdio.h>
int main(void) {
printf("Hello, Buildroot!\n");
return 0;
}
이제 동일한 기능을 수행하는 C++ 버전도 작성할 수 있습니다.
소스 코드 예제 (hello.cpp
)
#include <iostream>
int main() {
std::cout << "Hello, Buildroot!" << std::endl;
return 0;
}
이제 해당 애플리케이션을 Buildroot의 패키지로 추가하는 방법을 알아보겠습니다.
3. Buildroot 패키지 추가
사용자 정의 애플리케이션을 Buildroot 패키지로 추가하려면 다음 단계를 따릅니다.
3.1 패키지 디렉터리 생성
Buildroot의 package
디렉터리에 새로운 애플리케이션 폴더를 생성합니다.
cd buildroot/package
mkdir -p hello
cd hello
3.2 Config.in
파일 작성
패키지를 구성할 Config.in
파일을 생성합니다.
package/hello/Config.in
파일 작성:
config BR2_PACKAGE_HELLO
bool "hello application"
help
Simple Hello World application for Buildroot.
3.3 hello.mk
파일 작성
패키지를 빌드하기 위한 hello.mk
파일을 작성합니다.
package/hello/hello.mk
파일 작성:
HELLO_VERSION = 1.0
HELLO_SITE = $(BR2_EXTERNAL)/package/hello
HELLO_SITE_METHOD = local
HELLO_DEPENDENCIES =
define HELLO_BUILD_CMDS
$(TARGET_CC) $(TARGET_CFLAGS) -o $(@D)/hello $(@D)/hello.c
endef
define HELLO_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/hello $(TARGET_DIR)/usr/bin/hello
endef
$(eval $(generic-package))
위에서 HELLO_BUILD_CMDS
에서는 hello.c
를 컴파일하여 실행 파일을 생성하고, HELLO_INSTALL_TARGET_CMDS
에서는 빌드된 바이너리를 /usr/bin/hello
에 복사합니다.
3.4 패키지를 Buildroot 메뉴에 추가
package/Config.in
파일에 다음과 같이 패키지를 등록합니다.
source "package/hello/Config.in"
4. Buildroot 빌드 및 실행
4.1 menuconfig
에서 패키지 활성화
Buildroot 설정에서 새로 추가한 패키지를 활성화합니다.
make menuconfig
Target Packages
->hello application
선택
4.2 Buildroot 빌드 실행
make
4.3 빌드 결과 확인
빌드가 완료되면 output/target/usr/bin/hello
에 실행 파일이 생성됩니다.
4.4 QEMU를 사용한 실행 테스트
QEMU를 사용하여 빌드된 바이너리를 실행할 수 있습니다.
qemu-system-x86_64 -kernel output/images/bzImage -append "root=/dev/ram" -nographic
부팅 후 쉘에서 다음과 같이 실행할 수 있습니다.
/usr/bin/hello
출력 결과:
Hello, Buildroot!
5. 마무리
이 예제에서는 간단한 C/C++ 애플리케이션을 작성하고, 이를 Buildroot에 추가하는 과정을 살펴보았습니다. 패키지 작성법, 설정 파일 구성, 빌드 및 실행 방법을 익힘으로써 더 복잡한 애플리케이션을 Buildroot 환경에서 개발할 수 있습니다.
'Linux > buildroot' 카테고리의 다른 글
Buildroot에서 사용자 정의 디렉터리 및 파일 추가 방법 (0) | 2025.04.12 |
---|---|
기본 파일 시스템 구성 요소 (0) | 2025.04.11 |
Buildroot에서 사용자 정의 패키지 작성법 및 Config.in 설정 (0) | 2025.04.09 |
Buildroot에서 Custom Application 추가하기 (0) | 2025.04.08 |
Buildroot에서 커널 설정 및 빌드 방법 (0) | 2025.04.07 |