본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

명령어 | make -j$(nproc)

by 3604 2026. 8. 11.
728x90

make -j$(nproc)는 소스 코드를 빌드(컴파일)할 때 "내 컴퓨터의 CPU 코어 개수를 자동으로 파악해서, 그 수만큼 병렬로 최대한 빠르게 컴파일해라"라는 뜻입니다.

명령어를 조각내어 보면 쉽게 이해할 수 있습니다.

1. 명령 구성 요소 분석

  • make: 소스 코드를 컴파일하고 실행 파일을 만드는 빌드 도구입니다. (Makefile에 적힌 순서대로 컴파일을 진행함)
  • -j (또나 --jobs): Jobs의 약자로, 동시에 몇 개의 컴파일 작업을 실행(병렬 처리)할지 지정하는 옵션입니다.
    • 예: make -j4 $\rightarrow$ 4개 작업을 동시에 병렬 처리
  • $(nproc): Number of Processors의 약자로, 현재 시스템에서 사용 가능한 CPU 코어(스레드) 수를 출력하는 명령어입니다.
    • 예를 들어 내 CPU가 8코어 16스레드라면 nproc 실행 시 16이 출력되며, 명령어 전체는 내부적으로 make -j16으로 해석됩니다.

2. 왜 이렇게 사용할까요?

단순히 make만 입력하면 CPU 코어 1개만 사용해서 순차적으로 컴파일합니다. 최신 컴퓨터에 코어가 8개, 16개가 있어도 1개만 일하기 때문에 빌드 시간이 매우 오래 걸립니다.

명령어 동작 방식 컴파일 속도
make 코어 1개만 사용 (단일 스레드) 느림 🐢
make -j$(nproc) 모든 코어 동원 (최대 병렬 스레드) 매우 빠름 🚀

💡 실무 팁 (Tip)

  • 컴퓨터가 버벅거릴 때: CPU 점유율이 100%로 올라가면서 다른 작업(웹 서핑, IDE 등)이 멈칫할 수 있습니다. 이럴 때는 코어를 1~2개 남겨두고 돌리는 것이 좋습니다.
  • Bash
     
    make -j$(($(nproc) - 1))
    
  • Cmake와 함께 쓸 때: CMake 3.12 이상에서는 make 대신 아래 명령어로도 똑같이 모든 코어를 활용할 수 있습니다.
  • Bash
     
    cmake --build . -j$(nproc)
728x90