Repolode
root-project

root-project/cling

Clang과 LLVM 기반의 인터랙티브 C++ 인터프리터로, REPL에서 C++ 코드를 한 줄씩 실행할 수 있습니다.

스타
4,201
포크
313
열린 이슈
138
마지막 커밋
7일 전

어떤 프로젝트인가요?

Cling은 read-eval-print loop(REPL)를 구현한 인터랙티브 C++ 인터프리터입니다. 전체 컴파일-링크-실행 과정을 거치지 않고도 C++ 코드를 입력해 조금씩 실행할 수 있습니다. LLVM과 Clang의 확장으로 만들어졌으며 Clang의 컴파일러 진단 기능을 재사용합니다.

기존 LLVM/Clang 설치 환경에 독립적으로 빌드하거나, 전용 llvm-project 브랜치에서 LLVM과 함께 빌드할 수 있습니다. cling 바이너리를 실행하면 C++ 문장과 include 지시문을 바로 입력할 수 있으며, 인터랙티브하게 사용할 수 있는 .help 같은 점(.)으로 시작하는 명령도 제공합니다.

Cling은 CLING_DEBUG 및 CLING_PROFILE 환경 변수를 통해 인터프리터에서 실행되는(JIT 컴파일된) 코드의 디버깅과 프로파일링도 지원합니다. 빌드 후 설치할 수 있는 Jupyter 커널도 제공합니다.

핵심 기능

  • 01C++ 문장과 선언을 하나씩 실행할 수 있는 인터랙티브 REPL.
  • 02Clang과 LLVM 기반이며 Clang의 컴파일러 진단 기능을 재사용합니다.
  • 03#include 지시문을 지원하며 명령줄에서 코드를 인터랙티브하게 실행할 수 있습니다.
  • 04환경 변수를 통해 JIT 컴파일된 코드의 디버그 심볼 생성 및 perf 프로파일링을 지원합니다.
  • 05노트북에서 사용할 수 있는 Jupyter 커널을 제공합니다.

활용 사례

  • 전체 프로그램을 작성하지 않고 C++ 코드 조각이나 라이브러리 API를 빠르게 테스트하기.
  • 헤더와 C++ 언어 동작을 인터랙티브하게 살펴보기.
  • 데이터 탐색에 Jupyter 노트북에서 C++ 사용하기.
  • 런타임에 JIT 컴파일되는 코드 디버깅 또는 프로파일링하기.

빠른 시작

  1. 1

    llvm-project 저장소를 clone하고 cling-latest를 체크아웃합니다

    git clone https://github.com/root-project/llvm-project.git
  2. 2

    cling을 clone한 뒤 CMake를 사용해 LLVM 및 Clang과 함께 빌드합니다

    cmake -DLLVM_EXTERNAL_PROJECTS=cling -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../cling/ -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD="host;NVPTX" -DCMAKE_BUILD_TYPE=Release ../llvm-project/llvm
  3. 3

    clang 및 cling 타깃을 빌드합니다

    cmake --build . --target clang cling
  4. 4

    빌드 폴더에서 대화형 인터프리터를 시작합니다

    ./bin/cling

사용 전 알아둘 점

  • 빌드하려면 LLVM과 Clang을 소스에서 컴파일해야 하므로 시간이 오래 걸립니다.
  • 현재 나이틀리 바이너리 스냅샷을 사용할 수 없으므로 소스에서 빌드해야 합니다.
  • 링크된 문서와 발표 중 일부는 오래되었으며, README에 따르면 여기에 명시된 제한 사항은 최신 내용이 아닙니다.

토픽

자주 묻는 질문

cling은(는) 무엇인가요?
Clang과 LLVM 기반의 인터랙티브 C++ 인터프리터로, REPL에서 C++ 코드를 한 줄씩 실행할 수 있습니다. Cling은 read-eval-print loop(REPL)를 구현한 인터랙티브 C++ 인터프리터입니다. 전체 컴파일-링크-실행 과정을 거치지 않고도 C++ 코드를 입력해 조금씩 실행할 수 있습니다. LLVM과 Clang의 확장으로 만들어졌으며 Clang의 컴파일러 진단 기능을 재사용합니다.
cling은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
cling은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
cling은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. cling의 마지막 커밋은 2026년 10월 15일입니다.
cling은(는) 어디에 사용할 수 있나요?
전체 프로그램을 작성하지 않고 C++ 코드 조각이나 라이브러리 API를 빠르게 테스트하기. 헤더와 C++ 언어 동작을 인터랙티브하게 살펴보기. 데이터 탐색에 Jupyter 노트북에서 C++ 사용하기. 런타임에 JIT 컴파일되는 코드 디버깅 또는 프로파일링하기.
cling는 어떻게 설치하나요?
llvm-project 저장소를 clone하고 cling-latest를 체크아웃합니다: git clone https://github.com/root-project/llvm-project.git cling을 clone한 뒤 CMake를 사용해 LLVM 및 Clang과 함께 빌드합니다: cmake -DLLVM_EXTERNAL_PROJECTS=cling -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../cling/ -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_TARGETS_TO_BUILD="host;NVPTX" -DCMAKE_BUILD_TYPE=Release ../llvm-project/llvm clang 및 cling 타깃을 빌드합니다: cmake --build . --target clang cling 빌드 폴더에서 대화형 인터프리터를 시작합니다: ./bin/cling
cling은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/root-project/cling

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트