cmake ..와 make -j$(nproc)는 C/C++ 프로젝트를 빌드할 때 가장 흔하게 함께 사용되는 2단계 연속 명령어입니다.
간단히 말해 1단계: 빌드 환경 설정(설계도 생성)을 거쳐 2단계: 실제 파일 컴파일(건물 지어가기)을 수행하는 과정입니다.
1. 단계별 상세 의미
1단계: cmake .. (빌드 준비 및 설계도 생성)
· cmake: 소스 코드를 직접 컴파일하는 도구가 아니라, 컴퓨터 환경(OS, 컴파일러 버전, 라이브러리 위치 등)을 확인하고 Makefile이라는 실제 빌드용 파일(설계도)을 만드는 도구입니다.
· ..: 바로 상위 디렉터리(Parent Directory)를 가리킵니다.
o 보통 소스 코드 폴더 안에 build라는 깔끔한 임시 폴더를 만들어 들어간 뒤 실행합니다.
o 따라서 cmake ..은 "상위 폴더에 있는 CMakeLists.txt 파일(설계 기본 규칙)을 읽어서, 현재 위치(build 폴더)에 Makefile을 생성해라"라는 뜻입니다.
2단계: make -j$(nproc) (실제 컴파일 수행)
· make: 1단계에서 생성된 Makefile을 읽어서 소스 코드를 실제로 컴파일하고 실행 파일(.exe, binary)을 만드는 도구입니다.
· -j$(nproc): CPU의 모든 코어를 동원해 병렬로 빠르게 컴파일하라는 옵션입니다.
o -j: 여러 컴파일 작업을 동시에 실행(Parallel Jobs)
o `$(nproc)``: 현재 컴퓨터의 CPU 코어(스레드) 개수를 자동으로 계산하여 대입
💡 두 명령어를 나누어 쓰는 이유 (Out-of-source Build)
소스 코드가 있는 본래 폴더에서 바로 빌드하면 컴파일 과정에서 생기는 수많은 임시 파일(.o, .d 등)이 소스 코드와 섞여 지저분해집니다.
이를 방지하기 위해 개발자들은 보통 아래와 같은 구조로 작업합니다.
Bash
mkdir build # 1. 빌드 전용 빈 폴더 생성
cd build # 2. 빌드 폴더로 이동
cmake .. # 3. 상위 폴더(..)의 소스를 바탕으로 현재 폴더에 Makefile 생성
make -j$(nproc) # 4. 현재 폴더에서 병렬 컴파일 실행
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| 리눅스 명령어 모음 (0) | 2026.08.12 |
|---|---|
| 폐쇄망 RAG 시스템 구축 가이드2 (WSL2 Ubuntu + Docker + Qwen 3 8B + llama.cpp) (0) | 2026.08.11 |
| 명령어 | make -j$(nproc) (0) | 2026.08.11 |
| 러스트(RUST) | 어트리뷰트, 크레이트 (0) | 2026.08.11 |
| Emacs의 Ediff 기능 (0) | 2026.08.11 |