- for Windows (3/9)
이 파트에서는 Windows 환경에서 QGroundControl(QGC)의 소스코드를 내려받고 빌드하는 방법을 설명한 후, 코드 구조와 주요 클래스를 탐색하는 방법을 다룹니다. 초보자도 단계별로 따라 할 수 있도록 설치 명령어와 IDE 사용법을 상세히 안내합니다.
QGC 소스코드를 GitHub에서 내려받습니다.
반드시 --recursive 옵션을 사용해야 하위 모듈이 함께 내려옵니다.
```powershell
git clone --recursive https://github.com/mavlink/qgroundcontrol.git
cd qgroundcontrol
git submodule update --init --recursive
```
- Visual Studio 2019 이상 설치 (Desktop development with C++ 워크로드 포함)
- `CMakeLists.txt` 파일을 열면 자동으로 솔루션 구성이 생성됩니다.
- 빌드 절차:
1. CMake로 구성(Configuration) 실행
2. `ALL_BUILD` 실행 → `QGroundControl.exe` 생성
3. 실행 후 기본 UI가 열리면 빌드 성공
- Qt 5.15.x 설치 (MSVC 호환 버전 권장)
- Qt Creator 실행 → `qgroundcontrol.pro` 파일 열기
- Kit 선택: Desktop Qt 5.15.x MSVC
- Build & Run 클릭 → QGC 실행 확인
- CMake와 NMake를 활용해 빌드할 수도 있습니다.
```powershell
mkdir build && cd build
cmake .. -G "NMake Makefiles"
nmake
```
- 빌드가 완료되면 `release\QGroundControl.exe` 파일이 생성됩니다.
- Windows 환경에서도 Docker로 QGC를 빌드할 수 있습니다.
```powershell
docker build -t qgc-dev .
docker run -it --rm qgc-dev
```
- 컨테이너 환경에서 빌드하면 의존성 충돌 문제를 줄일 수 있습니다.
- src/ : QGC 핵심 로직 (Vehicle 관리, MAVLink 통신, 미션 처리)
- qml/ : QML 기반 UI 코드 (Plan View, Fly View, Analyze View)
- libs/ : 외부 라이브러리 및 공용 모듈
- resources/ : 아이콘, 이미지, 번역 파일
- test/ : 단위 테스트 및 통합 테스트 코드
- cmake/ : 빌드 스크립트 및 툴체인 설정
- QGCApplication : 프로그램 시작점, 초기화 및 전역 상태 관리
- MainWindow : 메인 윈도우 UI 관리
- Vehicle : 드론 객체, 상태 관리 및 제어
- MAVLinkProtocol : MAVLink 메시지 송수신 및 파싱 담당
- MissionManager : 미션 아이템 관리
- GeoFenceManager : 비행 금지 구역 관리
- RallyPointManager : 긴급 착륙 지점 관리
QGC의 클래스는 다음과 같이 계층적으로 구성됩니다:
- Application Layer : QGCApplication, MainWindow
- Vehicle Layer : Vehicle, MissionManager, GeoFenceManager
- Communication Layer : MAVLinkProtocol, LinkManager
- UI Layer : QML 파일 및 연동되는 C++ 클래스
- Visual Studio와 Qt Creator 중 하나를 선택해 개발하면 됩니다.
- Vehicle 및 MAVLinkProtocol 클래스를 먼저 분석하면 전체 흐름을 빠르게 이해할 수 있습니다.
- Qt Creator에서는 QML과 C++를 동시에 열어 연동 구조를 쉽게 확인할 수 있습니다.
- Visual Studio에서는 솔루션 탐색기를 활용해 구조를 확인하면 효율적입니다.
이제 QGC 소스코드를 빌드하고 구조를 이해했으므로, Part 4에서는 MAVLink 통신 흐름과 플러그인 아키텍처를 Windows 개발 환경에서 다룹니다.