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

This:

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

should be:

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

Also, calling your output file test may cause confusion - change it to mytest.

于 2011-05-27T15:57:50.500 に答える
1

これは、ターゲットの fileparam.o がルールによって生成されていないためです...代わりに file_parameters.o を生成しています。make はターゲットが存在しないことを認識するため、ビルドする必要があります。

于 2011-05-27T15:58:15.607 に答える