[c++] libusb의 설치 및 설정
libusb는 USB 장치를 다루는 데 사용되는 라이브러리로, C/C++로 개발된 프로그램에서 USB 장치와 통신할 때 유용하게 활용됩니다.
libusb 설치
libusb를 사용하기 위해서는 먼저 라이브러리를 설치해야 합니다. 대부분의 리눅스 배포판에서는 패키지 매니저를 통해 libusb를 설치할 수 있습니다. 예를 들어, Ubuntu에서는 다음과 같이 설치할 수 있습니다:
sudo apt-get install libusb-1.0-0-dev
macOS에서는 Homebrew를 사용하여 libusb를 설치할 수 있습니다:
brew install libusb
Windows에서는 libusb의 바이너리 파일을 다운로드하여 수동으로 설치해야 합니다.
libusb 프로젝트 설정
CMake 또는 Makefile을 사용하여 libusb를 포함시키는 방법에 대해 살펴보겠습니다.
CMake를 사용하는 경우
cmake_minimum_required(VERSION 3.5)
project(my_project)
find_package(libusb-1.0 REQUIRED)
include_directories(${LIBUSB_1_INCLUDE_DIRS})
target_link_libraries(my_project ${LIBUSB_1_LIBRARIES})
Makefile을 사용하는 경우
Makefile에서 libusb를 사용하려면 다음과 같이 컴파일 및 링크 단계에 libusb를 추가해야 합니다:
my_project: my_project.o
gcc -o my_project my_project.o -lusb-1.0
my_project.o: my_project.c
gcc -c -o my_project.o my_project.c
libusb 사용 예제
아래는 libusb를 사용하여 USB 장치와 통신하는 간단한 예제 코드입니다. 이 예제는 USB 장치로부터 제조자와 제품명을 읽어오는 기능을 하는 예제입니다.
#include <stdio.h>
#include <libusb-1.0/libusb.h>
int main() {
libusb_context *ctx = NULL;
libusb_init(&ctx);
libusb_device **list;
ssize_t cnt = libusb_get_device_list(ctx, &list);
if (cnt < 0) {
fprintf(stderr, "Error getting device list\n");
return 1;
}
for (ssize_t i = 0; i < cnt; i++) {
libusb_device *dev = list[i];
struct libusb_device_descriptor desc;
libusb_get_device_descriptor(dev, &desc);
printf("Vendor ID: 0x%04x, Product ID: 0x%04x\n", desc.idVendor, desc.idProduct);
}
libusb_free_device_list(list, 1);
libusb_exit(ctx);
return 0;
}
마치며
libusb를 설치하고 설정한 후에는 USB 장치와 손쉽게 통신할 수 있게 됩니다. 이러한 라이브러리를 활용하여 USB 기반의 장치와 소프트웨어 간에 데이터를 교환하는 다양한 프로젝트를 구현할 수 있습니다.
더 많은 정보는 libusb 공식 웹사이트에서 확인할 수 있습니다.