make: `all' に対して何も行われない 質問する

make: `all' に対して何も行われない 質問する

私は、eg pgm を使用して make ファイルを作成しています。

http://mrbook.org/tutorials/make/

私のフォルダeg_make_creationには以下のファイルが含まれています。

desktop:~/eg_make_creation$ ls
factorial.c  functions.h  hello  hello.c  main.c  Makefile

メイクファイル

# I am a comment, and I want to say that the variable CC will be
# the compiler to use.
CC=gcc
# Hwy!, I am comment no.2. I want to say that CFLAGS will be the
#options I'll pass to the compiler
CFLAGS=-c -Wall

all:hello

hello:main.o factorial.o hello.o
  $(CC) main.o factorial.o hello.o -o hello

main.o:main.c
  $(CC) $(CFLAGS) main.c

factorial.o:factorial.c
  $(CC) $(CFLAGS) factorial.c

hello.o:hello.c
  $(CC) $(CFLAGS) hello.c

clean:
  rm -rf *o hello

エラー:

desktop:~/eg_make_creation$ make all
make: Nothing to be done for `all'.

このプログラムをコンパイルする方法を理解するのを手伝ってください。

ベストアンサー1

場合によっては、makefile ルール内のコマンドの前にタブではなくスペースがあると、「すべてに対して何も実行されません」というエラーが発生することがあります。ルール内ではスペースではなくタブを使用するようにしてください。

all:
<\t>$(CC) $(CFLAGS) ...

の代わりに

all:
    $(CC) $(CFLAGS) ...

ルール構文の説明については、GNU make マニュアルを参照してください。https://www.gnu.org/software/make/manual/make.html#ルール構文

おすすめ記事