Repolode
root-project

root-project/cling

基于 Clang 和 LLVM 构建的交互式 C++ 解释器,提供逐行执行代码的 REPL 环境。

Star
4,201
Fork
313
未关闭 Issue
138
最近提交
7天前

这是什么?

Cling 是一个交互式 C++ 解释器,实现了读取-求值-输出循环(REPL),让 C++ 代码无需完整的编译、链接、运行流程即可逐步输入和执行。它以 LLVM 和 Clang 的扩展形式实现,并沿用 Clang 的编译器诊断信息。

项目既可以基于已有的 LLVM/Clang 独立构建,也可以与专用 llvm-project 分支中的 LLVM 一起构建。运行 cling 可执行文件后,可以直接输入 C++ 语句和 include 指令,并使用 .help 等点号开头的命令。

通过 CLING_DEBUG 和 CLING_PROFILE 环境变量,Cling 可以对解释执行(JIT 编译)的代码进行调试和性能分析。构建完成后,还可以安装其 Jupyter 内核,在 notebook 中使用 C++。

核心功能

  • 01交互式 REPL,可逐条执行 C++ 语句和声明。
  • 02基于 Clang 和 LLVM 构建,沿用 Clang 的编译器诊断信息。
  • 03支持 #include 指令,可在命令行中交互式运行代码。
  • 04通过环境变量为 JIT 编译的代码生成调试符号并进行 perf 性能分析。
  • 05提供 Jupyter 内核,可在 notebook 中使用。

适用场景

  • 无需编写完整程序,即可快速测试 C++ 代码片段或库的 API。
  • 交互式地探索头文件和 C++ 语言行为。
  • 在 Jupyter notebook 中使用 C++ 进行数据探索。
  • 调试或分析运行时经 JIT 编译的代码。

标签

常见问题

cling 是什么?
基于 Clang 和 LLVM 构建的交互式 C++ 解释器,提供逐行执行代码的 REPL 环境。 Cling 是一个交互式 C++ 解释器,实现了读取-求值-输出循环(REPL),让 C++ 代码无需完整的编译、链接、运行流程即可逐步输入和执行。它以 LLVM 和 Clang 的扩展形式实现,并沿用 Clang 的编译器诊断信息。
cling 可以免费使用吗?用的什么许可证?
cling 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
cling 还在维护吗?
活跃维护中。cling 最近一次提交是在 2026年10月15日。
cling 适合用来做什么?
无需编写完整程序,即可快速测试 C++ 代码片段或库的 API。 交互式地探索头文件和 C++ 语言行为。 在 Jupyter notebook 中使用 C++ 进行数据探索。 调试或分析运行时经 JIT 编译的代码。
在哪里获取 cling?
源代码和安装说明在 GitHub 上:https://github.com/root-project/cling

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目