使用JupyterLab写C++

使用JupyterLab写C++

前言

这篇博客纯粹就是为了好玩,平时大家都习惯使用jupyter写一些python代码特别是对于一些数据分析处理的问题,可以随时查看运行结果非常方便.如果是C++代码那就得每次链接编译再运行查看结果,对于一些小的数据容器这样操作非常不方便.正好看到有一个开源的库可以让我们在jupyter环境中就能运行C++代码,并且可以随时查看数据内容,所以来记载一下.

开始动手

首先查看一下这个库的内容https://github.com/jupyter-xeus/xeus-cling

image-20220605092354571

目前这个库只支持linuxMac系统,并且没有推出对Win的支持.所以Win想体验的话可以开个虚拟机或者用服务器.这个库主要就是一个用于C++的jupyter内核,基于C++解释器和jupyter协议实现.

安装

默认是配置好了anaconda环境的基础上进行下面的步骤

  1. 创建一个新的虚拟环境

conda create -n xxx

  1. 激活新的虚拟环境并且安装配置

conda activate xxx

conda install jupyterlab

conda install xeus-cling -c conda-forge

  1. 查看内核是否安装好

jupyter kernelspec list

image-20220605094816201

测试一下

随便打开一个文件夹,然后和python一样命令行运行jupyter lab

创建一个C++17的ipynb,然后写一些C++的代码进行测试

首先必须要引入头文件

#include<iostream>
#include<map>
#include<vector>

using namespace std;

运行这个代码

image-20220605095150804

然后随便编写一些容器并查看内部数据

map<string, int> mp{
    {"one",   1},
    {"two",   2},
    {"three", 3},
    {"four",  4}
};

vector<int> mylist{
    1,3,5,7,9
};

image-20220605095244508

完美,这不就是我们想要的即时查看数据内容嘛,真香!!!并且遇到某些接口不会使用的时候还可以很简单的查看文档接口介绍

image-20220605095654191

调用外部库(opencv)

图像处理最常用的opencv也可以在这里面调用,需要额外自己手动引入includelib

#pragma cling add_library_path("/usr/local/lib")
#pragma cling add_include_path("/usr/local/include/")
#pragma cling add_include_path("/usr/local/include/opencv4")
#pragma cling load("/usr/local/lib/libopencv_world.so.4.5.3")


#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;


Mat img=imread("/home/shelgi/Desktop/C++_opencv/1.jpeg");
imshow("src",img);
waitKey(0);
cout<<img.rows<<" "<<img.cols;

image-20220605124140438

结束

总的来看使用jupyter写C++代码可玩性还是可以的,但是项目开发就很难用的上.所以这个也只是一个玩具尝试.如果试试就会发现,这玩意居然不支持cin,并且貌似没有给出解决方案只能找其他方法代替.

猜你喜欢

转载自blog.csdn.net/shelgi/article/details/125131135