• ベストアンサー

複数のサブディレクトリを一緒にmakeして一つの実行ファイルを作成するには

いま、Linuxの環境でC言語の勉強しています。 それで、makeを使ってコンパイル方法を調べているのですが、 ソースディレクトリとヘッダーディレクトリを分けて管理している場合に一緒にコンパイルさせる為のMakefileの書き方が分からず困っています。 現在は、同じディレクトリ内にソースファイルとヘッダーファイルが存在してます。ちなみに下記が今のMakefile内容です。 ご存知の方が記述方法もしくは参考サイトを教えて頂けますでしょうか。よろしくお願い致します。 ======================================================== program = test_pro objs = main.o test1.o test2.o CC = gcc CFLAGS = -g -Wall #suffixes_define_rule .SUFFIXES : .c .o $(program) : $(objs) $(CC) $(CFLAGS) -o $@ $^ #suffixes_rule .c.o : $(CC) $(CFLAGS) -c $< .PHONY : clean clean : $(RM) $(objs) #header_depend test1.o : test1.h test2.o : test2.h =====================================================

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

ネットにもありました http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html VPATHやvpathのあたりが参考になるのでは

jjin
質問者

お礼

php504さん、ご返答ありがとうございます。 このサイトは知りませんでした。 中身を拝見させて頂きたいと思います。

その他の回答 (2)

回答No.3

test1.o : sub_dir/test1.h test2.o : sub_dir/test2.h ではだめなのかな。 Cソースの#include を書き換えたくなかったら CFLAGS = -g -Wall に、 -Isub_dir も入れると、探してくれるみたい。

jjin
質問者

お礼

superside0さん、ご返答ありがとございました。 gccオプションの方法を簡単に試してみたのですが、 うまくいきませんでしたが、もう少し色々試してみたいと 思います。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

O'reilly から「GNU Make」って本が出てるけど, それじゃダメ?

jjin
質問者

お礼

Tacosanさん、ご返答ありがとうございました。 お勧め頂いた本を一度拝見させて頂きたいと思います。

関連するQ&A