0

这是我的生成文件

all: main.o fileparam.o
        g++ -g $(LIBPATH) $(LIBS)  file_parameters.o main.o -o test
main.o: main.cpp
        g++ -g -Wall $(INCPATH) main.cpp -c

fileparam.o: file_parameters.cpp file_parameters.h
        g++ -g -Wall file_parameters.cpp -c

$(LIBPATH) $(LIBS) 指向要包含的库,$(INCPATH) 指向其他包含的文件

出于某种原因,每次我制作程序时它都会重新编译 file_parameters.o,我想知道我在哪里搞砸了。谢谢!

编辑:它不会每次都重新编译 main.o

4

2 回答 2

2

这:

fileparam.o: file_parameters.cpp file_parameters.h
        g++ -g -Wall file_parameters.cpp -c

应该:

file_parameters.o: file_parameters.cpp file_parameters.h
        g++ -g -Wall file_parameters.cpp -c

此外,调用您的输出文件test可能会导致混淆 - 将其更改为mytest.

于 2011-05-27T15:57:50.500 回答
1

这是因为您的目标 fileparam.o 不是由规则生成的……而是您正在生成 file_parameters.o。make 看到目标不存在,所以它必须构建它。

于 2011-05-27T15:58:15.607 回答