C で書かれた gtk アプリケーションのコードを書いていますが、それについていくつか質問があります。
# Compiler
CC = gcc
CFLAGS = -Wall -g -o
RM = rm -f
# ADDITIONAL HEADER PATH
GTKINC = `pkg-config --cflags gtk+-3.0`
GTKLIB = `pkg-config --libs gtk+-3.0`
INC = $(GTKINC)
LIBLNK = $(GTKLIB)
# SOURCES, OBJECTS, EXECUTABLE
SRCS = hello.c
OBJS = $(SRCS:.c = .o)
EXEC = hello
.PHONY: clean
all: $(EXEC)
@echo compile complete
$(EXEC): $(OBJS)
$(CC) $(INC) $(CFLAGS) $(EXEC) $(OBJS) $(LIBLNK)
clean:
$(RM) *.o *~ $(EXEC)
以前は、Makefile を作成するときに、オブジェクト ファイルごとに行を追加していました。
例えば
blah blah
a.o: 1.h A.c B.c
$(CC) blah blah
blah blah
そして、少し怠け者になって、もっと簡単に変更できるファイルをグーグルで作成しようとしました。最終的に製品は上記のコードです。1. これは実際に以前に行ったことと同じことを行いますか? (例のように) コードが適切にコンパイルされることはわかりましたが、古いオブジェクト ファイルをチェックするかどうかはわかりません。 'make' の全体的な意味)
2.古いソース ファイルをチェックするために、ヘッダー ファイルで 'depend'を使用する必要がありますか?? 3. 少し本題から外れますが、 gcc -o hello.o hello.h hello.c と gcc -c hello.c の違いは何ですか?