私はMakefileを初めて使用しています。私は、メイクファイルを以下ました: -Makefileは、.oファイルが他のfloderに置かれてもファイルが変更されなくてもすべてのファイルをコンパイルします。
$ cat Makefile
VER = Debug
main: main.o Time.o
g++ Object\ Code/main.o Object\ Code/Time.o -o ../$(VER)/main
main.o: main.cpp
g++ -c main.cpp -o Object\ Code/main.o
Time.o: Time.cpp Time_.h
g++ -c Time.cpp -o Object\ Code/Time.o
clean:
rm Object\ Code/*.o
rm ../$(VER)/main
のmakefileは、srcフォルダ内にある
$ ls && pwd
main.cpp Makefile Object Code Time.cpp Time_.h
/home/Rahul/Devlopment/WorkSpace/Test C++/src
オブジェクトコードは、SRCディレクトリです。
$ ls ..
Debug Release src
しかし、私はちょうど1つのファイルを変更して、makeを使用してみてくださいwhenver、それはすべてのファイルをコンパイルします: -
$ make
g++ -c main.cpp -o Object\ Code/main.o
g++ -c Time.cpp -o Object\ Code/Time.o
g++ Object\ Code/main.o Object\ Code/Time.o -o ../Debug/main
$ touch Time
Time.cpp Time_.h
$ touch Time_.h
$ make
g++ -c main.cpp -o Object\ Code/main.o
g++ -c Time.cpp -o Object\ Code/Time.o
g++ Object\ Code/main.o Object\ Code/Time.o -o ../Debug/main
$ make
g++ -c main.cpp -o Object\ Code/main.o
g++ -c Time.cpp -o Object\ Code/Time.o
g++ Object\ Code/main.o Object\ Code/Time.o -o ../Debug/main
は完全にnoobの通り、私は考えています。私を助けてください。
'main'は' Object Code/main.o'などではなく 'main.o'に依存しています。 – Matt
@Neil Butterworthは何を言ったのですか?ペストのようなファイル名のスペースを避けてください。 – Vroomfondel