0

makefile内に自分の「.h」ファイルの再コンパイル/更新を含めるにはどうすればよいですか。

これは私のmakefileです:

COMPILER = g++
SOURCES =  main.cpp 
APP = executable/main

OBJECTS = $(SOURCES:.cpp=.o)

all: $(SOURCES) $(APP) 

$(APP): $(OBJECTS)
    $(COMPILER) $(OBJECTS) -o $@

clean:
    rm -rf *.o $(APP)

プロジェクトを再コンパイルしたいのですが、whatever.hとwhatever1.hを変更したとします。これらのファイルは、main.cppのヘッダーに含まれています。

4

2 に答える 2

3

これらのファイルをの依存関係のリストに追加しても効果はありません$(APP)これにより、Makeは再リンク(つまり、ビルドmainアウトmain.o)されますが、再コンパイル(つまり、ビルドmain.oアウトmain.cppwhatever.hおよびwhatever1.h)は行われません。実行可能ファイルの動作は変更されません。ヘッダーに加えた変更は反映されません。

これらのファイルをオブジェクトファイルの前提条件のリストに追加する必要があります。

main.o: whatever.h whatever1.h
于 2012-05-08T15:08:49.213 に答える
-1

アプリの依存関係リストにヘッダーファイルを追加します。

COMPILER = g++
SOURCES =  main.cpp
HEADERS = whatever.h whatever1.h
APP = executable/main

OBJECTS = $(SOURCES:.cpp=.o)

all: $(SOURCES) $(APP) 

$(APP): $(OBJECTS) $(HEADERS)
    $(COMPILER) $(OBJECTS) -o $@

clean:
    rm -rf *.o $(APP)
于 2012-05-08T14:50:26.827 に答える