差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
linux:gnu_make [2012/03/05 01:55] – [偽りのターゲットを使ったテクニック] ともやん | linux:gnu_make [2019/08/19 06:48] (現在) – ともやん | ||
---|---|---|---|
行 4: | 行 4: | ||
プログラム開発では、ソースコード修正、ビルド、テストを何度も繰り返し行うことになるが、その際に上記に述べたような機能は非常に重要な要素である。\\ | プログラム開発では、ソースコード修正、ビルド、テストを何度も繰り返し行うことになるが、その際に上記に述べたような機能は非常に重要な要素である。\\ | ||
\\ | \\ | ||
- | make自体はIDEからも利用されており、上記に述べたことを実現しつつビルドを自動化するために利用される。その他にUnitテストやインストールの実行も自動化することが可能である。\\ | + | make 自体は IDE からも利用されており、上記に述べたことを実現しつつビルドを自動化するために利用される。その他に Unit テストやインストールの実行も自動化することが可能である。\\ |
===== 作業を自動化するMakefileの記述 ===== | ===== 作業を自動化するMakefileの記述 ===== | ||
- | makeコマンドを実行すると、カレントフォルダに存在する Makefile もしくは makefile の内容が実行される。\\ | + | make コマンドを実行すると、カレントフォルダに存在する Makefile もしくは makefile の内容が実行される。\\ |
\\ | \\ | ||
- | 例えば、単一のC++ソースをコンパイルするには、以下のコマンドを実行する。\\ | + | 例えば、単一の C++ ソースをコンパイルするには、以下のコマンドを実行する。\\ |
<code bash> | <code bash> | ||
$ g++ -o hellocpp hellomain.cpp | $ g++ -o hellocpp hellomain.cpp | ||
</ | </ | ||
これをMakefileで記述すると以下のようになる。\\ | これをMakefileで記述すると以下のようになる。\\ | ||
- | \\ | + | <file autoconf Makefile> |
- | [Makefile] | + | |
- | <code> | + | |
hellocpp: hellomain.cpp | hellocpp: hellomain.cpp | ||
g++ -o hellocpp hellomain.cpp | g++ -o hellocpp hellomain.cpp | ||
- | </code> | + | </file> |
※注意: | ※注意: | ||
\\ | \\ | ||
行 36: | 行 34: | ||
\\ | \\ | ||
以下に複数ソースファイルから実行ファイルをビルドする Makefile の例を示す。\\ | 以下に複数ソースファイルから実行ファイルをビルドする Makefile の例を示す。\\ | ||
- | \\ | + | <file autoconf Makefile> |
- | [Makefile] | + | |
- | <code> | + | |
StockPricesImport: | StockPricesImport: | ||
g++ -o StockPricesImport Http.o MySQLDB.o StockPricesImportApp.o | g++ -o StockPricesImport Http.o MySQLDB.o StockPricesImportApp.o | ||
行 47: | 行 43: | ||
StockPricesImportApp.o: | StockPricesImportApp.o: | ||
g++ -c StockPricesImportApp.cpp | g++ -c StockPricesImportApp.cpp | ||
- | </code> | + | </file> |
Makefileの意味は以下の通り。\\ | Makefileの意味は以下の通り。\\ | ||
* StockPricesImport ターゲットは、Http.o、MySQLDB.o、StockPricesImportApp.o の四つのファイルに依存している。 | * StockPricesImport ターゲットは、Http.o、MySQLDB.o、StockPricesImportApp.o の四つのファイルに依存している。 |