LoginSignup
0
0

More than 1 year has passed since last update.

ev3rtでno implicit conversion of Hash into String (TypeError)と出た時の備忘録

Posted at

概要 

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を介してコンパイルしたこともある。それもありだと思う。
だからもし、このような問題に直面した場合、これをまあ参考程度に気に留めておいて欲しい。

至らないところもあったと思う。
それでは。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0