より柔軟にしようとしているメイクファイルがあります。したがって、実行可能ファイルを作成する場合、primary.c と primary.h があります。それに加えて、実行可能ファイルに組み込む必要があるファイルのペアが他に 2 つあります。helper_funcs.c / helper_funcs.h と fork.c / fork.h です。
CC = gcc
CFLAGS = -c -g -Wall -Wextra
SOURCES = fork.c helper_funcs.c
DEPS = primary.h fork.h helper_funcs.h
OBJECTS = $(SOURCES:.c=.o)
EXECUTABLE = primary
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(OBJECTS) -o $@
.c.o: $(DEPS)
$(CC) $(CFLAGS) $< -o $@
clean:
rm -f *.o
rm -f $(EXECUTABLE)
私の目標は、追加のソース ファイルがいくつあっても、それらを SOURCES リストに追加するだけで Makefile がコンパイルとリンクを処理するように、この make ファイルを作成することです。
これをコンパイルすると、次のようになります。
rm -f *.o
rm -f primary
gcc -c -o fork.o fork.c -c -g -Wall -Wextra
gcc -c -o helper_funcs.o helper_funcs.c -c -g -Wall -Wextra
gcc -c -o primary.o primary.c -c -g -Wall -Wextra
primary.c: In function ‘build_state’:
primary.c:114: warning: implicit declaration of function ‘make_passive’
primary.c:120: warning: implicit declaration of function ‘make_active’
primary.c:127: warning: implicit declaration of function ‘string_builder’
primary.c: In function ‘main’:
primary.c:172: warning: implicit declaration of function ‘read_file’
gcc fork.o helper_funcs.o routed_LS.o -o routed_LS
表示されない関数は、helper_funcs.c ファイルに含まれている関数です。fork.cの機能をピックアップしているようですが、どこが違うのかわかりません。これらのエラーをクリアする方法を教えてくれる人はいますか? ありがとう!