像Python一样玩C/C++
使用Jupyter Notebook进行C/C++交互式编程
本文介绍如何在Jupyter Notebook中像Python一样便捷地使用C和C++
基于xeus-cling内核实现C++交互式编程,以及C内核的实现方法
目录
第一章:为什么需要像Python一样玩C/C++?
第二章:xeus-cling —— C++的Jupyter内核
第三章:安装与配置(Mac/Linux)
第四章:在Jupyter中玩C
第五章:实用技巧与示例代码
第六章:Windows用户的替代方案
第七章:总结与参考资料
第一章:为什么需要像Python一样玩C/C++?
1.1 Python的交互式体验
在Python中,我们可以使用Jupyter Notebook直接看到结果:
l = [1, 2]
l
直接输出:[1, 2]
这种即时反馈的交互式体验极大提高了开发效率和学习体验。
1.2 C++的传统开发模式
相比之下,使用C++时,即使是想查看一个简单的map内容:
mapmp{
{"one",1},
{"two",2},
{"three",3},
{"four",4}
};
也需要写循环遍历才能输出,缺乏直观性。
1.3 解决方案:Jupyter + C/C++
通过Jupyter Notebook配合专门的C/C++内核,我们可以:
像Python一样即时执行C/C++代码
立即看到变量值和输出结果
支持丰富的C++标准库(C++11/14/17)
方便学习、测试和原型开发
第二章:xeus-cling —— C++的Jupyter内核
2.1 什么是xeus-cling?
xeus-cling是一个用于C++的Jupyter内核,具有以下特点:
基于cling C++解释器(CERN开发)
支持C++11、C++14、C++17标准
实现真正的C++交互式编程
支持丰富的输出格式(包括图像、HTML等)
2.2 项目地址
https://github.com/QuantStack/xeus-cling
这是一个开源项目,由QuantStack团队开发维护。
2.3 支持的平台
✅ macOS
✅ Linux
❌ Windows(不直接支持,但可通过WSL或虚拟机使用)
💡 提示:Windows用户可以使用WSL (Windows Subsystem for Linux) 来运行xeus-cling
第三章:安装与配置(Mac/Linux)
3.1 前置条件
在开始之前,需要确保:
已安装Anaconda或Miniconda
有基本的命令行使用经验
网络连接正常(用于下载包)
3.2 步骤一:创建conda虚拟环境
# 创建一个名为cling的虚拟环境
conda create -n cling
# 切换到新环境
conda activate cling
3.3 步骤二:安装Jupyter Notebook
# 在当前环境中安装jupyter和notebook
conda install jupyter notebook
3.4 步骤三:安装xeus-cling
# 使用conda-forge通道安装xeus-cling
conda install xeus-cling -c conda-forge
💡 提示:为了加速安装,建议提前配置国内镜像源(如清华源、阿里源等)
3.5 步骤四:验证安装
# 检查已安装的kernel
jupyter kernelspec list
预期输出:
python3/home/xxx/anaconda3/envs/cling/share/jupyter/kernels/python3
xcpp11/home/xxx/anaconda3/envs/cling/share/jupyter/kernels/xcpp11
xcpp14/home/xxx/anaconda3/envs/cling/share/jupyter/kernels/xcpp14
xcpp17/home/xxx/anaconda3/envs/cling/share/jupyter/kernels/xcpp17
3.6 步骤五:启动Jupyter Notebook
jupyter-notebook
启动后,在"New"下拉菜单中可以看到C++11、C++14、C++17内核选项。
第四章:在Jupyter中玩C
4.1 安装C内核
如果需要在Jupyter中使用C语言,可以安装C内核:
# 安装C内核包
pip install jupyter-c-kernel
# 安装内核到Jupyter
install_c_kernel
4.2 验证C内核安装
jupyter kernelspec list
预期输出(增加了C内核):
c/home/light/anaconda3/envs/cling/share/jupyter/kernels/c
python3/home/light/anaconda3/envs/cling/share/jupyter/kernels/python3
xcpp11/home/light/anaconda3/envs/cling/share/jupyter/kernels/xcpp11
xcpp14/home/light/anaconda3/envs/cling/share/jupyter/kernels/xcpp14
xcpp17/home/light/anaconda3/envs/cling/share/jupyter/kernels/xcpp17
4.3 启动并使用C内核
jupyter-notebook
在Jupyter界面中,选择"C"内核即可开始C语言交互式编程。
第五章:实用技巧与示例代码
5.1 C++基础示例
示例1:输出map内容
#include
#include
#include
std::mapmp{
{"one",1},
{"two",2},
{"three",3},
{"four",4}
};
// 在Jupyter中可以直接输出
for (auto& p : mp) {
std::cout<< p.first << ": " << p.second << std::endl;
}
示例2:使用STL容器
#include
#include
#include
std::vectorv = {5, 2, 8, 1, 9};
std::sort(v.begin(), v.end());
for (int x : v) {
std::cout<< x << " ";
}
// 输出:1 2 5 8 9
5.2 高级功能
使用cling的特殊命令
.help// 显示帮助信息
.quit// 退出
.print Decltype(v)// 打印变量类型
加载外部库
#pragma cling add_include_path("/usr/local/include")
#pragma cling add_library_path("/usr/local/lib")
#pragma cling load("opencv_core")
5.3 调试技巧
使用std::cout进行调试输出
利用Jupyter的单元格分段执行特性
可以使用cling的.Debug命令进行更深入的调试
第六章:Windows用户的替代方案
6.1 方案:使用WSL
Windows 10及以上版本可以使用WSL (Windows Subsystem for Linux):
1. 在Windows功能中启用WSL
2. 安装Ubuntu等Linux发行版
3. 在WSL中按照Mac/Linux的步骤安装xeus-cling
4. 在Windows浏览器中访问Jupyter
6.2 方案二:使用虚拟机
使用VirtualBox或VMware安装Linux虚拟机
在虚拟机中安装Anaconda和xeus-cling
6.3 方案三:使用在线环境
Google Colab(支持C++,但不支持cling)
Binder(可以配置xeus-cling环境)
一些在线C++编译器(如Wandbox、Compiler Explorer)
⚠️ 注意:Windows原生系统目前无法直接运行xeus-cling,必须使用WSL或虚拟机
第七章:总结与参考资料
7.1 核心要点总结
xeus-cling让C++可以像Python一样在Jupyter中交互式编程
支持C++11/14/17标准,满足现代C++开发需求
C语言可以通过jupyter-c-kernel实现类似功能
Windows用户需要使用WSL或虚拟机来运行
7.2 优势
提高C/C++学习和开发效率
方便代码测试和原型验证
结合Jupyter的强大生态(Markdown、可视化等)
7.3 参考资料
xeus-cling GitHub: https://github.com/QuantStack/xeus-cling
cling官网: https://root.cern.ch/cling
Jupyter官网: https://jupyter.org/
Conda官方文档: https://docs.conda.io/
7.4 常见问题FAQ
Q1: 安装速度很慢怎么办?
A: 配置国内镜像源,如清华源、阿里源等。
Q2: Windows可以直接安装吗?
A: 不能,需要使用WSL或虚拟机。
Q3: 支持C++20吗?
A: 目前主要支持到C++17,C++20支持在开发中。