Cmake tips and tricks

From HPCWIKI
Revision as of 14:38, 16 July 2026 by Clara (talk | contribs) (Phase 6.1: LLM-Optimized Wiki Template 적용)
Jump to navigation Jump to search

Template:Status

Template:TOC

Overview

CMake는 오픈소스 크로스 플랫폼 빌드 시스템 자동화 도구입니다. 소스 코드와 컴파일러를 독립적으로 관리하며, 빌드 파일을 생성합니다.

Summary

  • 무엇인가? 크로스 플랫폼 빌드 시스템 자동화 도구
  • 왜 필요한가? 복잡한 빌드 의존성 관리, 다중 플랫폼 지원
  • 언제 사용하는가? C/C++ 프로젝트 빌드, 다중 플랫폼 개발

---

Purpose

이 문서가 존재하는 이유

  • Goal: CMake 소스 빌드 방법, 설치 가이드 제공
  • Scope: CMake 소스 컴파일, 의존성 설치
  • Non-goals: CMakeLists.txt 작성법, CMake 모듈 상세

---

Key Concepts

개념 설명 Related
CMake 크로스 플랫폼 빌드 시스템 자동화 도구 Linux
CMakeLists.txt CMake 빌드 설정 파일 Cmake tips and tricks
Make/Ninja CMake가 생성하는 빌드 시스템 Cmake tips and tricks
libssl-dev OpenSSL 개발 라이브러리 Cmake tips and tricks

---

Architecture

CMake 빌드 프로세스:

graph TD
    A[CMakeLists.txt] --> B[CMake 설정]
    B --> C[Makefile/Ninja 파일 생성]
    C --> D[빌드 실행]
    D --> E[실행 파일/라이브러리]

---

Workflow

CMake 소스 빌드 워크플로우:

  1. 의존성 설치
  2. sudo apt install libssl-dev g++
  3. CMake 소스 다운로드
  4. cmake 소스 압축 해제
  5. 빌드 디렉토리 생성
  6. mkdir build && cd build
  7. CMake 실행
  8. cmake ..
  9. 빌드
  10. make -j$(nproc)
  11. 설치
  12. sudo make install

---

Detailed Explanation

CMake 소스 빌드

다른 버전의 CMake가 설치되어 있으면 먼저 제거합니다. 컴파일러(g++)가 설치되어 있어야 합니다.

# 기존 CMake 제거
sudo apt remove cmake

# 의존성 설치
sudo apt install libssl-dev

# 최신 버전 다운로드
wget https://cmake.org/files/v3.28/cmake-3.28.0.tar.gz
tar -xzf cmake-3.28.0.tar.gz
cd cmake-3.28.0

# 빌드 및 설치
./bootstrap
make -j$(nproc)
sudo make install

---

Configuration

CMake 빌드 옵션

# 빌드 디렉토리 생성
mkdir build && cd build

# CMake 설정
cmake ..

# 특정 빌드 시스템 사용
cmake -G "Ninja" ..

# 컴파일러 지정
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ..

---

Examples

Example 1: CMake 소스 빌드

입력:

sudo apt remove cmake
sudo apt install libssl-dev
wget https://cmake.org/files/v3.28/cmake-3.28.0.tar.gz
tar -xzf cmake-3.28.0.tar.gz
cd cmake-3.28.0
./bootstrap
make -j$(nproc)
sudo make install

---

Best Practices

  • 소스 빌드 — 최신 버전 필요 시 소스 빌드 권장
  • libssl-dev 설치 — CMake 빌드에 필수 의존성
  • g++ 설치 — C/C++ 컴파일러 필수
  • 빌드 디렉토리 분리 — out-of-source 빌드 권장
  • Ninja 사용 — 대규모 프로젝트에서 Make보다 빠른 빌드

---

Limitations

  • 소스 빌드는 시간이 많이 소요
  • 의존성 관리 수동
  • 최신 버전 유지 위해 정기적 업데이트 필요

---

References

---

Related Pages

---