web-dev-qa-db-ja.com

makeで複数のCファイルをコンパイルします

(私はLinux Ubuntu 9.10を実行しているので、実行可能ファイルの拡張子はexecutablefile.outです)私はCでモジュラープログラミング(複数のファイルを使用したプログラミング)に入り、単一のメイクファイルで複数のファイルをコンパイルする方法を知りたいです。たとえば、これらのファイルmain.c、dbAdapter.c、dbAdapter.hをコンパイルするためのメイクファイルは何ですか? (ちなみに、まだ理解していない場合、main関数はmain.cにあります)また、誰かがメイクファイルのドキュメントへのリンクを投稿できますか?

28
Mohit Deshpande

投稿されたリンクはすべて良いです。特定のケースでは、これを試すことができます。基本的に、すべてのMakefileはこのパターンに従います。それ以外はすべてショートカットとマクロです。

program: main.o dbAdapter.o
   gcc -o program main.o dbAdapter.o

main.o: main.c dbAdapter.h
   gcc -c main.c

dbAdapter.o dbAdapter.c dbAdapter.h
   gcc -c dbAdapter.c

ここで重要なことは、Makefileがルールを順番に見て、特定のアイテムが必要になるとビルドすることです。

最初にプログラムを見て、プログラムをビルドするにはmain.oおよびdbAdapter.oと呼ばれるものが必要であることを確認します。

その後、main.oを見つけます。ただし、main.oをビルドするには、main.cとdbAdapter.hが必要になります(dbAdapter.hはmain.cに含まれていると想定しています)。

これらのソースを使用して、gccを使用してコンパイルすることによりmain.oをビルドします。 -cは、コンパイルするだけであることを示します。

DbAdapter.oでも同じことを行います。これらの2つのオブジェクトファイルがあれば、それらをリンクする準備ができています。このステップにもgccコンパイラーを使用します。 -oは、programというファイルを作成していることを示します。

39
aduric

GNU make はあなたが探しているものでなければなりません。

0
shinkou