MacBook Pro M2でCコンパイラ作成入門をやるための開発環境構築

開発環境

モチベーション

低レイヤを知りたい人のためのCコンパイラ作成入門 をやっていく上で、普段使いしているPCから記事と同じ命令セットの環境を用意したい。

普段使いしているのはMacBook Pro M2で、命令セットはARM64。一方で、コンパイラ本はx86-64が前提となっている。ARM64とx86-64はそれぞれ異なるコンパイラの構文を持つので、読み替えが発生して大変。環境を合わせたい。

取りうる手法

エディタは普段使っているMacBook Pro M2上で使いたいので、以下の手法が考えられる。

物理的な手元に命令セットがx86-64Ubuntuが入っているPCがあるので、経済的な観点から前者をやってみる。(電気代考えたら本当に経済的なのか?)

接続

Ubuntu

$ sudo apt install openssh-server

$ sudo service ssh status

macOS

$ ssh {USER}@{IP_ADDRESS} 

毎回パスワードを求められるのは手間だったので以下を参考にして公開鍵認証を設定した。

SSHは公開鍵・秘密鍵を使って楽にする - RAKUS Developers Blog | ラクス エンジニアブログ

ssh-copy-id 便利だ。

ファイルを送ってコマンド実行

一発で実行したいのでシェルスクリプトを書いた。

#!/bin/sh
rsync -avp "$2" btsitf@"$1":/home/btsitf/"$2"
ssh -t btsitf@"$1" "cc -o test $2 && ./test"
echo $?

IPアドレスは変動する可能性があるので外から渡せるようにした。
ssh は最後に実行したコマンドの終了コードを返すみたい。

以下のように使ってる。

./exec.sh {IP_ADDRESS} test.s

今は終了コードだけ見られればいいのでこんな感じにした。実行するコマンドを柔軟にできたらより良さそう。

参考