bin、inc、obj、srcなどの複数のフォルダーを持つプログラム用の「適切な」makefileを作成する必要があります。これが私のmakeファイルです。makeと入力すると、プログラムはまったくコンパイルされていませんが、何もできないとだけ表示されます。どこかにエラーがあると思いますが、本当に見つかりません。(ps私は作るのがまったく新しいです)。あなたの助けをどうもありがとう!
binフォルダー内のmakefile:
vpath %.o ../obj/
$(prog): $(objs)
$(cc) $(ccflags) -o $@ $^ $(ldflags)
objフォルダー内のmakefile:
vpath %.c ../src
vpath %.h ../inc
all: $(objs)
%.o: %.c %.h
$(cc) $(ccflags) -c $<
-include *.d
一般的なmakefile:
export prog := inv_svn
export objs := $(patsubst %.c, %.o, $(wildcard src/*.c)))
export src_dir := src
export inc_dir := inc
export obj_dir := obj
export bin_dir := bin
export cc := gcc
export ccflags := -I $(PWD)/$(inc_dir) -MMD -g -Wall
export ldflags := -lcurses -lgdbm
test := ./$(prog)
all: $(prog)
$(prog): $(bin_dir)
$(bin_dir): $(obj_dir)
$(bin_dir):
make -C $@
$(obj_dir):
make -C $@
.PHONY: clean
clean:
rm -f $(obj_dir)/*.[od]$(prog)