LLVM 코어, Clang C/C++ 프런트엔드, libc++ 및 LLD 링커를 포함하는 모듈형 컴파일러·툴체인 기술 모음입니다.
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
llvm-project 저장소를 clone하고 cling-latest를 체크아웃합니다
git clone https://github.com/root-project/llvm-project.git - 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
clang 및 cling 타깃을 빌드합니다
cmake --build . --target clang cling - 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 통계는 매일 갱신됩니다.
관련 프로젝트
Rust 코드를 대화형으로 실행할 수 있는 Jupyter 커널과 명령줄 REPL을 제공하는 평가 환경입니다.
C와 C++ 코드를 WebAssembly로 컴파일해 브라우저, Node.js 및 기타 Wasm 런타임에서 실행할 수 있게 하는 컴파일러 툴체인입니다.
LLVM 기반 Go 컴파일러로, 마이크로컨트롤러, WebAssembly(WASM/WASI), 명령줄 도구를 대상으로 합니다.
A Go compiler built on LLVM that lets Go code call C libraries directly and import Python libraries.