0

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 の違いは何ですか?

4

1 に答える 1