在编写C++的过程中,想使用vscode,在jupyter中运行C++,经过搜索,可以通过xeus-cling实现,但xeus-cling只支持linux和mac,不支持windows系统,因此需要先安装WSL来实现功能,在此记录一下实现过程。
参考的主要资源包括如下几篇文章:
Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)_蓝三金的博客-CSDN博客_linux subsystem
在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程_蓝三金的博客-CSDN博客_c++ notebook
如何使用jupyter运行c++ - 百度文库 (baidu.com)
win10如何安装Microsoft store? - 知乎 (zhihu.com)
jupyter-xeus/xeus-cling: Jupyter kernel for the C++ programming language (github.com)
这几篇文章的内容大部分是正确的,但如果完全按着来的话会遇到好几个坑,本篇文章对一些安装细节进行了修正,整个流程在我自己的电脑上是可以成功跑通的。
下面几步参考Windows 10 安装 Linux 子系统(Windows Subsystem for Linux)_蓝三金的博客-CSDN博客_linux subsystem即可,基本没有需要更正的,有个小坑是我的win10是LSTC版本,没有Microsoft Store,需要手动安装一下。
参考即可,没有需要更正的。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
由于我用的Win10 LSTC版本,手动安装Microsoft Stor,参考win10如何安装Microsoft store? - 知乎 (zhihu.com)。
先去网盘下载(提取码1234),下载后将文件解压到桌面上,右键以管理员身份运行文件夹中的 Add-Store.cmd,左下角出现 Press any Key to Exit. 时,关闭窗口,重启电脑即可。
打开 Microsoft Store 搜索Ubuntu
,单击 Ubuntu 后选择 获取
就会自动下载安装 Ubuntu 了。
下载完成后运行会进入命令行界面,第一次使用要设置一下用户名和密码,然后运行以下两行命令更新一下软件包。
sudo apt update
sudo apt upgrade
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
在Ubuntu终端内输入以上两行命令,无脑yes和enter就行。然后关闭终端重启,看到用户名前出现(base)提示说明安装成功。
这里就不能完全参考在 Win10 中使用 Jupyter notebook 运行 C++ 详细教程_蓝三金的博客-CSDN博客_c++ notebook了,需要结合如何使用jupyter运行c++ - 百度文库 (baidu.com)来用,因为第一篇文章中安装的jupyter和xeus-cling会出现版本不兼容的情况,虽然照着来能安装成功,但是在vscode内运行的时候,会出现内核一直连接不上的情况。
先进入xeus-cling的在线试用网站,xcpp - Jupyter Notebook (gesis.org),然后新建一个cell输入 !conda list
,这样我们就能获取到xeus-cling自己搭建环境用到的软件包的版本情况,主要关注一下几个包的版本:
获取到这些信息后,我们就可以来配置conda环境了,我使用的命令如下,直接按顺序运行就行,里面先安装了下mamba来提高安装速度。
conda create -n cling
conda activate cling
conda install -c conda-forge mamba
mamba install python==3.7.10
mamba install jupyter_core==4.7.1
mamba install jupyter_client=6.1.12
mamba install jupyter notebook
mamba install xeus-cling==0.12.0 -c conda-forge
这样我们的linux环境就搭建好了,然后就是vscode的设置。
先在linux终端内输入jupyter notebook,这样我们就开启了一个jupyter服务器,这时候会给出提示文本告诉我们地址:
把这个地址copy下来备用。
切到Vscode界面,新建一个cpp.ipynb文件,然后点击右下角的jupyter服务器选择按钮
在弹出的窗口里选择现有的,把刚才复制的地址paste进去
这时候我们就把jupyter切换成linux里运行的了,然后点击右上角的选择内核,可以看到已经有C++11,C++14,C++17可以选择了。
先运行个hello world试一下,发现报错了,原因是在jupyter里不需要写int main了,直接去掉。
改成这样就可以运行啦。
但还有点小问题,就是这里的代码风格还是python 的,所以会标出各种错误格式提示,需要修改一下。点击cell右下角的python小字
弹出的窗口里选择cpp就可以了
现在再看,已经可以正常的按照C++的代码风格来显示颜色和字体加粗等。
到这里,我们在vscode中,使用jupyter运行c++就成功了~