Jupyter Notebook運転C/C++


Jupyter Notebookは多くのプログラミング言語をサポートし、これらの言語のコードを直接実行することができます.Jupyter Notebookが特定の言語のコードを実行できるようにするには、対応するカーネルを追加する必要があります.サポートされている言語およびカーネルには、次のリンクが表示されます.https://github.com/jupyter/jupyter/wiki/Jupyter-kernels .
今日は、インタラクティブモードでC++コードを実行するclingカーネルをサポートします.公式の例を見ると、C++コードもPythonのように書きながら実行できるのかと驚きました.その内部のメカニズムについてはまだ深く探究していませんが、最も重要なのはclingカーネルを急いで装着し、インタラクティブにC++コードを実行する快感を体験することです.
2日間の振り回された後、やっとC++のclingコアを装着しました.Linuxマシンにカーネルをインストールしているので、主な問題はコンパイルプロセスが煩雑です.ソースコードのダウンロード、各コンパイルプロセスの手動実行など、多くの方法を試みたが、様々な問題で失敗したが、多くのことを学んだ.最後に公式のGithub倉庫をクローンし、提供されたCPTツールを使用して直接コンパイルを完了し、一歩一歩、非常に簡単です.
clingカーネルはPython 3に依存するため、あなたのマシンにPython 2がインストールされている場合は、まずPython 3をインストールする必要があります.Python 3をインストールすると、ついでにJupyter Notebookカーネルに追加でき、後で使いやすいです.Python 3コアの追加
Python 3のインストール:
$ apt-get install python3 python3-pip

1
次にipykernelモジュールをインストールします.
python3 -m pip install ipykernel

1
このプロセスは時間がかかります.成功すると、次のプロンプトが表示されます.
Successfully installed ipykernel ipython traitlets jupyter-client tornado setuptools pexpect simplegeneric prompt-toolkit typing pickleshare pygments jedi decorator ipython-genutils python-dateutil jupyter-core pyzmq backports-abc ptyprocess wcwidth
最後に、Python 3カーネルをJupytter Notebookにインストールします.
python3 -m ipykernel install --user

1
OK、Jupyter Notebookを開くと、Python 3コアが1つ増えていることがわかります.C++clingカーネルの追加
クローンclingのGithub公式倉庫:
git clone https://github.com/root-project/cling.git

1
コンパイル操作を行う前に、まずあなたのマシンにcmakeツールがインストールされていることを確認します.つまり、コマンドcmakeを入力してプログラムを実行することができます.cmakeが正しく取り付けられていれば、以下の操作が可能となります.cling/tools/packaging/ディレクトリに切り替えて、次の2つのコマンドを実行します.
chmod +x cpt.py  
./cpt.py --check-requirements && ./cpt.py --create-dev-env Debug --with-workdir=./cling-build/

1
2
このプロセスには、ネットワークからソースファイルを取得し、コンパイルすることが含まれており、時間で最も時間がかかるフェーズです.
コンパイルが完了したらpython 3にclingkernelをインストールする必要があります.cling/tools/Jupyter/ディレクトリに切り替えて実行
pip3 install kernel/

1
最後に、Jupyter Notebookにclingカーネルを追加すると、cling-cpp 11、cling-cpp 14、cling-cpp 17などの特定のC++仕様のclingカーネルを必要に応じてインストールできます.
jupyter kernelspec install kernel/cling-cpp17

1
他に問題がなければ、Jupyter Notebookを開いて異なるC++プログラミングを感じることができます!公式コードの例
class Rectangle {  
    private:
        double w;
        double h;

    public:

        Rectangle(double w_, double h_) {
            w = w_;
            h = h_;
        }
        double area(void) {
            return w * h;
        }
        double perimiter(void) {
            return 2 * (w + h);
        }
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Rectangle r = Rectangle(5, 4); r.area();
```cpp
(double) 20.000000