Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Go言語開発での makeコマンド と Makefile Go言語の開発ではmakeコマンドをタスク自動化ツールとしてよく使います。 よく使うコマンド、自動化したいタスクをMakefileに記述しておくと、開発に使う複雑なコマンドをすぐに実行したり、チームで共有出来ます。 Makefileに対して、難しいイメージを持っているかもしれませんが、超基本のMakefileの書き方はとてもシンプルなものです。 この記事の目的 Makefileの超基本がわかる Go言語開発のタスク自動化ツールとしてのMakefileの書き方がわかる 前提知識 シェルスクリプト についての知識 書き方 書き始める前の準備 EditorConfigを設定して、タブ / スペース によるインデントのトラブルに会わないようにしましょう。 公式サイトにあなたのエディタが、EditorConfigをサポートしているか、プラグイ
最近寒いので毛布を出した @at_grandpa です。 みなさん、関数ジャンプしてますか? してますよね! 今までエラーで挫けていて導入していなかったのですが、最近本腰いれて解決に臨み、結果、素晴らしいライフチェンジングになりました。 偉大な先人の方々のツールは素晴らしい!巨人の肩の上に乗りまくりましょう。 ctags + vim ググればたくさん出てきますが、簡単に導入方法と紹介を。 インストール [debian系] sudo apt-get install exuberant-ctags [CentOS/RedHat系] yum install ctags [mac] brew install ctags tagsの生成 cd /path/to/target_dir ctags -R これで、tags というファイルが生成されます。 vimの設定 vimに読み込ませるtagsファイル
課題で学んだことを一つメモ。 今まで複数の実行ファイルを一気に生成するMakefileの書き方が分からなかったのですが、その方法が分かりました。普通は↓のようにMakefileを書いてから、 #Makefile TARGET1: hoge.c gcc -o TARGET1 -Wall hoge.c TARGET2: moge.c gcc -o TARGET2 -Wall moge.cmakeコマンドの引数に個別にTARGETを指定してコンパイルすると思います。 $ make TARGET1 TARGET2これだと一々TARGETを打ち込まなきゃいけなくてめんどくさい!そこで使うのが↓の方法です。 #Makefile all: TARGET1 TARGET2 TARGET1: hoge.c gcc -o TARGET1 -Wall hoge.c TARGET2: moge.c gcc -o
次の理由からいろいろとムズムズしてしまったので、Makeについて書くことにしました。 C言語 Advent Calendar 2015で2日分だけ空きがある。空きが埋まっていればめでたいし、空きがもっと多ければあきらめがつくが…^^;;; C言語でシンプルすぎるブロック崩しを書いた(C言語 Advent Calendar 2015 13日目)は、プログラムも記事も面白いのに、Makefileの書き方が好みではない make触ってみた(ドワンゴ Advent Calendar 2015 20日目) は参考になる情報が多い良記事だけど、結末が好みではない なお、ここで取り上げるMakeは、GNU Makeです。Mac OS Xでコマンドラインツールをインストールしたときや、Linuxでは、makeコマンドを実行すると、GNU Makeが呼び出されるはずです。 また、以下の記述ではMakeの基本
シンプルで応用の効くmakefileとその解説 makefileは一度作るとそれ以降編集する機会が少なくなるので意外と真面目に考える人は少なく、ネット上でもまとまった情報は多くない。 Linux系OS上(正確に言うとGNU MakeとGCC)で複数のC/C++ソースファイルから1つの実行ファイルを作成(make)するための汎用的なmakefileテンプレートを作った。名前はまだない。適宜ディレクトリ構成や設計などに従ってmakefileをカスタマイズする必要があると思うがそのベースにする。 このmakefileのいいところ コンパイル対象となるソースファイルをワイルドカードで指定できる。 ヘッダファイル、ライブラリ、オブジェクトファイルなどコンパイル、リンクに関連するどのファイルが外部で変更されていてもきちんと 差分 コンパイルされる。 makefile自体に説明書(この記事)がある。 C
I often find Bash syntax very helpful, e.g. process substitution like in diff <(sort file1) <(sort file2). Is it possible to use such Bash commands in a Makefile? I'm thinking of something like this: file-differences: diff <(sort file1) <(sort file2) > $@ In my GNU Make 3.80 this will give an error since it uses sh instead of bash to execute the commands.
Make は、様々なタイプのファイルのビルド作業を自動的に行ってくれるシンプルかつ強力なツールです。しかしながら、makefileを書く際に問題にぶち当たるプログラマもいれば、Makeの基本知識がないことで、既存のものを再発明してしまうプログラマもいます。 Makeの働き デフォルトでは、Makeは一番目のターゲットから開始します。このターゲットのことをデフォルトゴールと呼びます。 Makeはカレントディレクトリのmakefileを読み込み、一番初めのルールで処理を開始します。しかし、Makeが完全にこのルールを処理する前に、ルールが依存するファイルのためのルールを処理しなければなりません。各ファイルそれぞれは、自身のルールに従って処理されます。 実はこれは、各ターゲットの再帰的アルゴリズムになっています。 ターゲットをビルドするルールを見つける。ルールがないようであれば、Makeはうまく
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く