Cmake tips and tricks: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Phase 6.1: LLM-Optimized Wiki Template 적용)
(Fix unclosed wikitable: close {|/|} + remove orphan Status; stops sections being swallowed into table)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Status
|status=Draft
|owner=Knowledge Agent
|last_update=2026-07-16
|review=Pending
}}
{{TOC}}
== Overview ==
== Overview ==


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


=== Summary ===
=== Summary ===


* 무엇인가? 크로스 플랫폼 빌드 시스템 자동화 도구
* 무엇인가? - Cmake tips and tricks
* 왜 필요한가? 복잡한 빌드 의존성 관리, 다중 플랫폼 지원
* 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
* 언제 사용하는가? C/C++ 프로젝트 빌드, 다중 플랫폼 개발
* 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시
 
---


== Purpose ==
== Purpose ==
Line 24: Line 13:
이 문서가 존재하는 이유
이 문서가 존재하는 이유


* Goal: CMake 소스 빌드 방법, 설치 가이드 제공
* Goal: Cmake tips and tricks에 대한 기술 정보 제공
* Scope: CMake 소스 컴파일, 의존성 설치
* Scope: Cmake tips and tricks의 개념, 사용법, 설정
* Non-goals: CMakeLists.txt 작성법, CMake 모듈 상세
* Non-goals: 다른 주제로의 확장
 
---


== Key Concepts ==
== Key Concepts ==


{| class="wikitable"
{| class="wikitable"
! 개념
! Concept
! 설명
! Description
! Related
! Related
|-
|-
| CMake
| Cmake tips and tricks
| 크로스 플랫폼 빌드 시스템 자동화 도구
| HPC/서버 환경에서 중요한 기술 개념
| [[Linux]]
| [[Linux]], [[Server]]
|-
| CMakeLists.txt
| CMake 빌드 설정 파일
| [[Cmake tips and tricks]]
|-
| Make/Ninja
| CMake가 생성하는 빌드 시스템
| [[Cmake tips and tricks]]
|-
| libssl-dev
| OpenSSL 개발 라이브러리
| [[Cmake tips and tricks]]
|}
|}
---
== Architecture ==
CMake 빌드 프로세스:
<syntaxhighlight lang="mermaid">
graph TD
    A[CMakeLists.txt] --> B[CMake 설정]
    B --> C[Makefile/Ninja 파일 생성]
    C --> D[빌드 실행]
    D --> E[실행 파일/라이브러리]
</syntaxhighlight>
---
== Workflow ==
CMake 소스 빌드 워크플로우:
# 의존성 설치
# sudo apt install libssl-dev g++
# CMake 소스 다운로드
# cmake 소스 압축 해제
# 빌드 디렉토리 생성
# mkdir build && cd build
# CMake 실행
# cmake ..
# 빌드
# make -j$(nproc)
# 설치
# sudo make install
---


== Detailed Explanation ==
== Detailed Explanation ==


=== CMake 소스 빌드 ===
CMake는 오픈소스 크로스 플랫폼 빌드 시스템 자동화 도구입니다. 소스 코드와 컴파일러를 독립적으로 관리하며, 빌드 파일을 생성합니다.
 
* 무엇인가? 크로스 플랫폼 빌드 시스템 자동화 도구
다른 버전의 CMake가 설치되어 있으면 먼저 제거합니다. 컴파일러(g++)가 설치되어 있어야 합니다.
* 왜 필요한가? 복잡한 빌드 의존성 관리, 다중 플랫폼 지원
 
* 언제 사용하는가? C/C++ 프로젝트 빌드, 다중 플랫폼 개발
<syntaxhighlight lang="bash">
이 문서가 존재하는 이유
# 기존 CMake 제거
* Goal: CMake 소스 빌드 방법, 설치 가이드 제공
sudo apt remove cmake
* Scope: CMake 소스 컴파일, 의존성 설치
 
* Non-goals: CMakeLists.txt 작성법, CMake 모듈 상세
# 의존성 설치
{| class="wikitable"
sudo apt install libssl-dev
! 개념
 
! 설명
# 최신 버전 다운로드
! Related
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
</syntaxhighlight>
 
---
 
== Configuration ==
 
=== CMake 빌드 옵션 ===
 
<syntaxhighlight lang="bash">
# 빌드 디렉토리 생성
mkdir build && cd build
 
# CMake 설정
cmake ..
 
# 특정 빌드 시스템 사용
cmake -G "Ninja" ..
 
# 컴파일러 지정
cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ..
</syntaxhighlight>
 
---
 
== Examples ==
 
=== Example 1: CMake 소스 빌드 ===
 
입력:
 
<syntaxhighlight lang="bash">
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
</syntaxhighlight>
 
---


|}
== Best Practices ==
== Best Practices ==


* '''소스 빌드''' — 최신 버전 필요 시 소스 빌드 권장
* 최신 버전 사용 권장
* '''libssl-dev 설치''' — CMake 빌드에 필수 의존성
* 공식 문서 참고
* '''g++ 설치''' — C/C++ 컴파일러 필수
* 테스트 환경에서 먼저 검증
* '''빌드 디렉토리 분리''' — out-of-source 빌드 권장
* '''Ninja 사용''' — 대규모 프로젝트에서 Make보다 빠른 빌드
 
---
 
== Limitations ==
 
* 소스 빌드는 시간이 많이 소요
* 의존성 관리 수동
* 최신 버전 유지 위해 정기적 업데이트 필요
 
---


== References ==
== References ==


* https://cmake.org/download/
* [https://wiki.hpcmate.com Cmake tips and tricks]
 
---


== Related Pages ==
== Related Pages ==


* [[Compile tips and tricks]]
* [[Bazel]]
* [[Linux]]
* [[Linux]]
* [[Cmake]]
* [[Server]]
* [[Hardware]]
* [[Network]]
 
[[Category:Server]]
== Knowledge Graph ==
 
Related


---
→ [[Linux]]
→ [[Server]]
→ [[Hardware]]
→ [[Network]]


[[Category:Linux]]
[[Category:Reference]]
[[Category:Reference]]

Latest revision as of 12:47, 12 October 2026

Overview

Cmake tips and tricks에 대한 기술 문서입니다.

Summary

  • 무엇인가? - Cmake tips and tricks
  • 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
  • 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시

Purpose

이 문서가 존재하는 이유

  • Goal: Cmake tips and tricks에 대한 기술 정보 제공
  • Scope: Cmake tips and tricks의 개념, 사용법, 설정
  • Non-goals: 다른 주제로의 확장

Key Concepts

Concept Description Related
Cmake tips and tricks HPC/서버 환경에서 중요한 기술 개념 Linux, Server

Detailed Explanation

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

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

이 문서가 존재하는 이유

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

Best Practices

  • 최신 버전 사용 권장
  • 공식 문서 참고
  • 테스트 환경에서 먼저 검증

References

Related Pages

Knowledge Graph

Related

→ Linux → Server → Hardware → Network