おはようございます?こんにちわ?こんばんわ?青木です。
個人的に進めていたプロジェクト「MacでRXマイコンの開発環境を構築する」の続編です。
前回ちらっと記載したのですが、Linux(ubuntu14.04)では、GNU Toolsのウェプサイトに構築方法があります。
Mac OS XはBSD系のUNIXをベースに開発されており、BSD系でのコンパイル可能なアプリケーションや開発Toolはほとんど利用可能のようです。
つまり、Mac OS Xなら、Linuxと同じ方法で環境ができる可能性があるということです。
環境を構築したマシンは、
・2012年モデル[MD232J/A] Mac book Air
・OS-X High Sierra(10.13)
です。2017年モデル 13-inch Mac book Pro(カスタム品)でも検証しています。
まず、はじめにすることは、RXマイコンのGCC(rx-elf-gcc)クロスコンパイラを作るためのGCCが必要になるということです。
OS-Xの初期段階では、GCCの呼び出しでllvmが起動するようで、llvmでは、GCCのクロスコンパイラをビルドすることができません。
そこで、macportsのGCCを使用します。macportsではなく、brewでもできるようですが、ここでは、macportsを使って環境を作ります。
macportsのほかに、X-Code(App Storeからダウンロード)のインストールとターミナルからxcode-select –installを実行します(ディスプレイによっては見えていない可能性があるので、念のため、installの前の-は二つあります)。
macportsはここからダウンロードしてインストールします。当時のバージョンは2.4.2-10.13-HighSierra.pkgでした。2018/6/8時点では、2.5.2-10.13-HighSierra.pkgでした。
インストールした後、macportsのアップグレードを行います。
sudo port -d selfupdate
アップデートが終わったら、GCCをインストールします。GCCのバージョンは5を使っています。バージョンによってコンパイルできても正常に動作しないことがあるようで、可能な限りバージョンを合わせた方が良さそうです。
sudo port install gcc5
GCCのインストールが終わったら、インストールしたGCCのライブラリと実行コマンドを移動、コピーまたはリンクにします。ファイル名を変更する必要があったので、私は、リンクにしています。
sudo in -sf /opt/local/bin/gcc-mp-5 /usr/local/bin/gcc sudo in -sf /opt/local/bin/g++-mp-5 /usr/local/bin/g++ sudo in -sf /opt/local/bin/g++-mp-5 /usr/local/bin/c++ sudo in -sf /opt/local/lib /lib/CPP
次回、クロスコンパイラのソースをダウンロードしますが、コンパイルに必要なライプラリgmp、mpfr、libmpcなどがないため、macportsから入手しています。
sudo port install gmp mpfr libmpc texinfo automake diffutils
確認として、gcc–versionを実行してllvmでないことが確認できれば、クロスコンパイラーを作るコンパイラーの準備ができたことになります。
次回は、クロスコンパイラーのソースの入手とビルドについてです。