hiranomakefileおさらいTwitterFacebookGoogle+はてブPocket概要linuxシステムのカーネル触る機会があるんだかないんだかで、改めてmakefileについておさらい。今回はほとんど自分のメモみたいなものです。$(TARGET)出典は下記の書籍を読み進めていて出てきました。話はそれますが低レイヤの知識を得る際にオススメです。興味のある方は是非どうぞ。私はそんなにmakefileをガッツリ触ったことがあるわけではないので、分からない点をひとつひとつ掘り下げていきます。.c,.o,$(SRCS))Makefileで使えるユーザ関数であり、substは3つの引数を受け取ります。ようなイメージになります。いう文字列に置換することになります。いう文字列が格納されることになります。文字通りコンパイル時のオブジェクトファイルの文字列を格納しているようです。rpi_gpiolib.cを指すことになります。.cを依存ファイルとしてコンパイルするルールが存在します。下記のようなルールを確認しました。$<...$(LOADLIBES)に関しては定義されていないようなので、この場合は特に意味を成さないですが、通常はリンクするライブラリのパスを入れます。コマンドに関してですが、アーカイブを作成します。現在ではもっぱらライブラリの作成時にのみ使用されるコマンドで、複数オブジェクトをまとめてライブラリを作成する際の典型的なパターンです。.aファイルを作成します。$(DEST_HEADER)installコマンドにより作成したライブラリファイルを適切な場所にコピーします。cpコマンドと何が違うのかというと、コピーと同時に属性を指定することができます。こちらは特に難しいことはないですね。はじめはよくわからなかったですが分解して見たらかなりしっかりした構造であることがわかりました。調べていてこちらのページを見つけたのですが、リンカ/ローダの仕組みを歴史的な側面からも見つつ体系的に非常によくまとめられていたのでオススメです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。g2インスタンスでtensorflowをGPUサポートで動作させるモチベーションを管理するRECOMMENDこちらの記事も人気です。