ESP-IDF 핵심 가이드: 아두이노 추상화를 넘어 산업용 임베디드 개발로

1. ESP-IDF가 필요한 이유: 아두이노의 추상화 장벽을 넘어서 임베디드 개발에서 ESP32의 인기는 매우 높지만, 대부분의 초보자가 아두이노 IDE의 `ESP32` 보드 지원 패키지(BSP)를 통해 처음 접한다는 사실은 간과되곤 합니다. 이 패키지는 `Serial.begin()`으로 UART 초기화를, `digitalWrite()`로 GPIO 출력 레지스터 구성을, `delay()`로 시스템 틱 타이머와 태스크 스 ...

7월 9일 01:57에 게시됨

Conan 패키지 관리자 사용법 및 프로젝트 구조 안내

Conan: C/C++ 전용 오픈소스 패키지 관리 도구 소개 Conan은 크로스플랫폼, 분산형, 그리고 커뮤니티 기반의 C 및 C++ 라이브러리 관리를 위한 강력한 도구입니다. 이 문서는 Conan의 기본 구조와 구성 요소를 중심으로 실질적인 사용 방법을 설명합니다. 기본 프로젝트 구조 Conan 패키지를 개발하거나 사용할 때 일반적으로 따라야 할 디렉터리 구조는 다음과 같습니다: ...

7월 8일 08:34에 게시됨

터미널에서 CMake로 Qt 프로젝트 빌드 시 Qt5Config.cmake 파일을 찾지 못하는 문제 해결

Qt Creator를 사용할 때는 정상적으로 빌드되지만, 터미널에서 직접 CMake를 통해 빌드를 시도하면 다음과 같은 오류가 발생할 수 있습니다: CMake Error at CMakeLists.txt:3 (find_package): Could not find a package configuration file provided by "Qt5" (requested version 5.15) with any of the following names: Qt5Config.cmake qt5-config.cmake ...

7월 3일 17:47에 게시됨

리눅스와 VSCode를 이용한 C++ 프로젝트 개발 환경 구축 및 CMake 활용

C/C++ 컴파일 과정 C++ 소스 코드가 실행 가능한 프로그램으로 변환되는 과정은 여러 단계로 나뉩니다. 각 단계는 특정 역할을 수행하며, 이해하는 것이 빌드 시스템을 다루는 데 중요합니다. 1. 전처리 (Pre-compilation) 전처리기는 소스 파일(.cpp)과 헤더 파일(.h)을 처리하여 전처리된 파일(.i)을 생성합니다. 이 과정에서 #include, #define과 같은 전처리 지시어를 ...

7월 3일 17:03에 게시됨

pugixml을 활용한 XML 데이터 처리 기법

XML 처리 라이브러리 pugixml 소개 pugixml은 경량이며 고성능의 C++ 기반 XML 파서로, 구조화된 데이터를 효율적으로 읽고 쓸 수 있도록 설계되었습니다. 주요 특징은 다음과 같습니다: DOM 유사 인터페이스 제공 — 트리 탐색 및 수정에 용이 빠른 비검증 파싱 속도 — 대용량 파일 처리에 적합 XPath 1.0 지원 — 복잡한 노드 접근 가능 유니코드 완전 지원 — 인 ...

6월 30일 04:03에 게시됨

단목 SLAM의 자세 추정 모듈 구현 시작하기 (1일차)

기초 구성 및 이미지 로드 시스템 설계 이 글에서는 단목 카메라 기반의 시각적 자세 추정(VO, Visual Odometry) 모듈을 처음부터 직접 구현하는 과정을 기록합니다. 이번 단계에서는 설정 파일 읽기, 이미지 경로 관리, 그리고 이미지 데이터를 로드하는 기본 클래스를 작성합니다. 1. 설정 파일 파싱 (YAML 형식) 설정 정보는 .yaml 파일에 저장되며, OpenCV의 FileSto ...

6월 28일 17:23에 게시됨

CANdevStudio 프로젝트 시작하기

CANdevStudio 프로젝트 튜토리얼 1. 프로젝트 디렉토리 구조 CANdevStudio는 CAN 버스 시뮬레이션을 위한 개발 도구입니다. 프로젝트의 디렉토리 구조는 다음과 같이 구성되어 있습니다: CANdevStudio/ ├── CMakeLists.txt ├── README.md ├── src/ │ ├── main.cpp │ ├── CanBusAdapter.cpp │ ├── CanBusAdapter.h │ ├── ... ├── include/ │ ├── CanBusAdapter ...

6월 26일 18:54에 게시됨

VSCode 기반 산업용 C++ 개발 환경의 완전한 설정 방법

초기 프로젝트 구조 생성 CMake는 현대 산업급 C++ 프로젝트에서 가장 널리 사용되는 빌드 시스템입니다. 적절한 디렉터리 구조(예: src, include, test, build)를 갖춘 프로젝트 템플릿은 코드의 가독성과 유지보수성을 크게 향상시킵니다. 이 구조는 소스 파일, 헤더 파일, 단위 테스트 및 빌드 출력을 명확히 분리하여 협업에 유리합니다. 정적 분석 통합 (clang-tidy) ...

6월 24일 05:55에 게시됨

CMake 주요 명령어 정리

명령어 cmake_minimum_required # 최소 호환 버전 지정 cmake_minimum_required(VERSION 3.22) project # 버전 번호와 설정 파일 추가 project(step_base VERSION 1.1) project() 명령어가 호출되면, CMake는 내부적으로 step_base_VERSION_MAJOR와 step_base_VERSION_MINOR 변수를 정의합니다. add_executable # 소스 코드 파일을 지정하여 실행 파일 생성 add_ex ...

6월 12일 21:28에 게시됨

CMake 기초: 멀티플랫폼 빌드 도구 입문

CMake 개요 C/C++ 개발자라면 한 번쯤 겪어봤을 것이다. 오픈소스 라이브러리를 직접 빌드하려 할 때, Visual Studio 버전 차이로 인해 무수한 오류에 마주치고, 결국 포기하는 경험. 이런 문제는 프로젝트의 확산에도 큰 장애물이 된다. 특히 크로스플랫폼 개발 환경에서는 더욱 심각하다. Windows에서 개발한 후 Ubuntu 서버로 배포할 때, 플랫폼별로 별도의 빌드 스크립 ...

6월 12일 17:42에 게시됨