概要
ev3rtをmakeする際、no implicit conversion of Hash into String (TypeError)と出て、対処法が見つからない...。対処を紹介する。
必ずしもこの方法で解決できるわけではないと思うのでそこはご勘弁を。(いろいろなパターンがあるからね)
ちなみに、私はこれ以外のエラーが計4個程出て、最終的のこのエラー文になったので、またほかのエラーの場合でも役に立つかもしれない。
基本の環境構築について
WSL(Windows System for Linux)
Cygwin,gcc,ruby,perl etc...は念のため削除或いはアンインストールしておく
こちらが成功した。
簡単!!WSLをインストールしてWindows10でLinux開発環境構築
今回の場合、必要なのはパッケージの更新という項目まで。
諸々のインストール
Ubuntuターミナルで以下を実行。
sudo apt install wget;sudo apt install diffutils;sudo apt install make;sudo apt install build-essential;sudo apt install ruby
豆知識。
Linuxでは、コマンドの後に ; と打つと毎度毎度コマンドを打つ煩わしさがなくなる。
が、難点としてはどこでエラーが起きたかが分かりにくくなるので、使いどころは考えたほうがいい。
と、ここで注意して欲しい事がある。それはgccのバージョンだ。
よくある(?)ことでバージョンを変えればすんなり解決する問題も多い。
それぞれの方法を紹介する。
gcc
結論。version 9.5.0であるなら、読み飛ばしOK。参考にはなると思うけどね。
まずは現バージョンを確認する。
gcc -version
次のコマンドでインストール可能か否かが分かる。gcc-9がなかった場合は、このサイトを参考にしてみてほしい。
gcc-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
これでgccは完了です。
ビルド
プロジェクトデータ
今回使用するのはev3rt-release...ではなく、githubで公開されている方を使用する。
適当な場所(home/username/が個人的にお勧め)でev3rtフォルダを作成。その中のパスで以下のコマンドを入力
git clone https://github.com/ev3rt-git/ev3rt-hrp3-sdk.git
ls sdk
で要チェック。
おそらくsdk内は作成されていないので、その場合は以下のコマンドを。
git clone https://github.com/ev3rt-git/ev3rt-hrp3-sdk.git
ファイル名が分かりにくいので、変更しておいたほうが後々が楽になる。
作業フォルダに移動。
cd sdk/workspace
ここで、テスト用のサンプルプログラムを実行する。
make app=helloev3
感想
これで出来る...はず。だ、け、ど
正直これはあくまで方法の一つに過ぎないので、他に最適な方法があるんじゃないかと今でも思っている。とはいっても解決したのはついさっきだが。
私はここに至るまで最低20時間以上は費やした。
一度諦めて、Live ShareでパートナーのPCを介してコンパイルしたこともある。それもありだと思う。
だからもし、このような問題に直面した場合、これをまあ参考程度に気に留めておいて欲しい。
至らないところもあったと思う。
それでは。