私はMakefileを作成しようとしています。単純なMakefileを実行することはできますが、別のフォルダのファイルをソートする必要はありません。 Makefile、すべての.cと.hファイルを含むsrcフォルダ、変換するファイルを含むファイルフォルダ、すべての.oファイルと実行可能ファイルのbinフォルダが必要です。Cのメイクファイル - ターゲットを作るルールなし
CC = gcc
CFLAGS = -Wall -Werror -Wextra -pedantic -std=c99 -g
OBJECTS = word.o pair.o list.o dict.o set.o
translate : $(OBJECTS)
mkdir ./files
mkdir ./bin
cd ./src; $(CC) $(CFLAGS) -o translate $(OBJECTS) main.c; mv *.o ../bin; mv translate ../bin
word.o: word.c word.h
cd ./src; $(CC) $(CFLAGS) -c word.c -o word.o
pair.o: pair.c pair.h word.h
cd ./src; $(CC) $(CFLAGS) -c pair.c -o pair.o
list.o: list.c list.h word.h pair.h
cd ./src; $(CC) $(CFLAGS) -c list.c -o list.o
dict.o: dict.c dict.h word.h list.h
cd ./src; $(CC) $(CFLAGS) -c dict.c -o dict.o
set.o: set.c set.h word.h list.h
cd ./src; $(CC) $(CFLAGS) -c set.c -o set.o
.PHONY : clean
clean :
$(RM) ./bin/*.*
rmdir ./bin
しかし、すぐに、私はmake
ターミナルショーを入力する:
make: *** No rule to make target `word.c', needed by `word.o'. Stop.
は、私が以前にJava用のMakefileをこのように作られ、それが働いた
これは私が作ったメイクファイルがあります、確かにsrcフォルダの中にword.hとword.cというファイルがあるので、なぜそれが見つからないのですか?
私はJavaで、今私は正しい方法を使用すると、cdコマンドでさえ、CDを削除した後 –
succesfullのだった知っているように、&&行うことであることを読むことをやりました./srcそれでもword.oを作るためのターゲットファイルが見つからない、私はstandiだと思う間違ったフォルダにあるのですが、どうすればいいでしょうか? –