1

より柔軟にしようとしているメイクファイルがあります。したがって、実行可能ファイルを作成する場合、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の機能をピックアップしているようですが、どこが違うのかわかりません。これらのエラーをクリアする方法を教えてくれる人はいますか? ありがとう!

4

0 に答える 0