💡 Ninja는 무엇이며, 왜 CMake와 함께 많이 사용될까?
💡 빠른 빌드 속도를 자랑하는 Ninja의 핵심 개념과 사용법을 배워보자!
📌 Ninja란?
Ninja는 Google이 개발한 초고속 빌드 시스템으로, 기존 Make보다 더 빠르고 효율적인 빌드를 제공합니다.
특히, CMake와 함께 사용되며 대형 프로젝트의 증분 빌드(Incremental Build) 속도를 대폭 향상시킵니다.
📌 Ninja의 주요 특징
✅ 빠른 빌드 속도 – Make보다 의존성 처리와 병렬 처리가 뛰어남
✅ 간단한 파일 구조 – ninja.build 파일을 기반으로 동작
✅ CMake와 함께 사용 가능 – CMake의 백엔드 빌드 시스템으로 활용 가능
✅ 증분 빌드 최적화 – 변경된 파일만 다시 빌드
📌 Ninja vs Make 비교
비교 항목Ninja 🥷Make 🔨
속도 | 매우 빠름 🚀 | 상대적으로 느림 🐢 |
빌드 파일 | build.ninja (최적화된 파일) | Makefile |
의존성 처리 | 강력한 증분 빌드 지원 | 수동으로 설정 필요 |
주요 사용 사례 | 대형 프로젝트 (Chromium, Android) | 일반적인 프로젝트 |
📌 결론: Make보다 더 빠르고 가볍게 동작하므로, 빌드 속도가 중요한 프로젝트에서는 Ninja를 많이 사용함!
📌 Ninja 설치하기
📌 Windows
choco install ninja
📌 Ubuntu/Linux
sudo apt install ninja-build
📌 Mac (Homebrew 사용)
brew install ninja
📌 설치 확인
ninja --version
📌 Ninja 기본 사용법
📌 1. 간단한 build.ninja 파일 만들기
rule compile
command = g++ -c $in -o $out
rule link
command = g++ $in -o $out
build main.o: compile main.cpp
build app: link main.o
📌 2. Ninja로 빌드 실행
ninja
📌 3. 특정 타겟만 빌드하기
ninja app
📌 4. 병렬 빌드 실행 (CPU 코어 4개 사용)
ninja -j4
📌 CMake와 함께 Ninja 사용하기
📌 1. CMake 프로젝트에서 Ninja 활성화
cmake -G Ninja -B build
📌 2. Ninja로 빌드 실행
ninja -C build
📌 3. CMake와 Ninja를 활용한 전체 빌드
cmake -G Ninja -S . -B build
cmake --build build
📌 Ninja를 사용하는 대표적인 프로젝트
✅ Google Chromium (Chrome 브라우저 빌드)
✅ Android AOSP 빌드 시스템
✅ LLVM 및 Clang 빌드
✅ CMake 기반의 대형 C++ 프로젝트
🎯 마무리
✅ Ninja는 Make보다 빠르고 최적화된 빌드 시스템
✅ CMake와 함께 사용하면 대형 프로젝트 빌드 속도가 향상됨
✅ 대형 프로젝트 (Chrome, Android)에서 필수적으로 사용됨
💡 이제 직접 Ninja를 사용해서 빌드 속도를 높여볼까요? 🚀
'[🖥️] IT > {💻} PROGRAMMING' 카테고리의 다른 글
🛠️ Makefile 완벽 가이드 – 빌드를 자동화하는 최고의 방법! (0) | 2025.02.16 |
---|---|
🏗️ CMake 빌드 시스템 & 다양한 빌드 방법 완벽 가이드 🚀 (0) | 2025.02.16 |