あれか?これか?

プログラミングのこととかを書いたりするかもしれない。

Jetson Nanoにpyxelをインストールするときの ”fatal error: filesystem: No such file or directory #include <filesystem>”を解決する

最近買ったJetson Nanoで2Dゲームでも作ってみようかと思い、見つけたのがpyxelであった。
github.com
メインPCのUbuntu環境ではサクッとインストールできたが、Jetson上では少し手間取ったのでメモ。

結論:gccとg++のバージョンを上げればいい(バージョン9以降?)

結論から言うとこうなる。ソースからビルドする必要があるがこのとき

fatal error: filesystem: No such file or directory
 #include 

などと言われてMakeが通らなかった。
とりあえずgccとg++のバージョンを確認してみる

$ gcc --version
gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0

とのことでこのバージョンではfilesystemが実装されていないようであった。(詳しくは分からないが…)
新しいバージョンのgccとg++をインストールする。

$ sudo apt-get install gcc-9
$ sudo apt-get install g++-9

デフォルトで読み込まれるバージョンを変更する

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
 
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

これでgcc --versionコマンドを実行してバージョンが上がっていたらOK。
あとは手順にしたがってMakeすれば良い。

ちなみにgccとg++のバージョンを8にしていたときは

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

といったエラーを吐かれてpip install が通らなかった。
そこでgccとg++のバージョンを9にしてMakeし直し、pip installを行ったら成功した。