C++ 解释器 Cling 笔记
贡献者: addis
本文处于草稿阶段。
预备知识 Conda 笔记
Cling 是一个 C++ 解释器,可以直接像动态语言那样逐行运行 C++ 代码无需预先编译。
你可以在 jupyter notebook 的 C++ 页面在线使用 cling(具体来说是 Xeus-Cling)。
如果想在本地使用 Jupyter Notebook 中的 Cling(推荐),用 conda 安装即可。Xeus-Cling 不支持 Windows 版的 conda(2023/8/13)。可以用 WSL2 安装 conda 再装 Cling。WSL1 不行,安装成功,但启动 jupyter notebook 失败(2023/8/13)。
新建环境(可选)conda create -n cling;安装 Jupyter Notebooko:conda install notebook;安装 Xeus Cling:conda install xeus-cling -c conda-forge;初始化:conda activate cling。运行:jupyter notebook。
在 conda 中安装 Cling 后,也可以在命令行运行:可执行文件的路径如 ~/miniconda3/pkgs/cling-0.8-hf817b99_1/bin/cling,在 /usr/bin 里面创建一个 symlink 即可。
Cling 基于 LLVM,Clang 能编译的 C++ 代码 Cling 都支持。
linux 暂时不支持 apt 安装,安装方法参考这里。推荐直接 download binary。解压:bzip2 -d ???.bz2,tar -xvf ???.tar。解压以后可以直接进入到 bin 文件夹运行 ./cling 看看是否成功。如果成功,可以添加一个软链 sudo ln -s /abs/path/to/cling /usr/bin/。
文件夹解压后不到 1GB,如果想节约空间可以删掉所有 .a 文件以及体积最大的几个没有后缀名的二进制文件,剩下 100MB 左右,貌似不影响 Cling 运行。
CLion 可以使用 Cling,但如果在 WSL 中安装貌似会出问题。
用 cling 进入 Cling 命令行,用 .q 退出。或者 cling '命令1' '命令2' 单独执行几个命令。也可以用 cling < test.cpp 执行一个文件。
在打开 notebook 以前设置 CPATH 环境变量,可以添加头文件搜索路径。但貌似添加了某些目录以后,会导致 Cling kernel 无法启动。
也可以在代码中使用 #pragma cling add_include_path("路径") 添加头文件路径。
#include 的相对路径是相对于当前路径的。
要设置当前路径,用 #include
#pragma cling add_library_path("路径") 可以添加动态链接库的搜索路径。
#pragma cling load("动态库") 可以加载动态库。
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。