0

機能しないメイクファイルがあります。エラーの場所を見つけるのを手伝ってもらえますか? ありがとう!

CC = gcc
FILES = workfile.c insert.c
TARGETS = exe
CFLAGS = -o
DBUG =
RM = rm -f
OBJS = *.o

#Master Rule

all: $(TARGETS)

#Build

exe: workfile.o insert.o
    $(CC) $(CFLAGS) $(DBUG) workfile.o insert.o exe

#workfile

workfile.o: workfile.c
    $(CC) $(DBUG) -c *.c

insert.o: insert.c
    $(CC) $(DBUG) -c *.c

clean:  
    $(RM) $(TARGETS) $(OBJS)

エラーは次のとおりです

$make all
gcc  -c *.c
gcc -o  workfile.o insert.o exe
gcc: error: exe: No such file or directory
make: *** [exe] Error 1

ターゲットの名前を変更してみました。しかし、助けにはなりませんでした。これ以上続行できませんでした。

4

3 に答える 3

1

ええと、私はそれを手に入れました...あなたは-oそこにcflagsがあります。パラメータを期待しているので、では使用-oしないでください。CFLAGS

変更される可能性のある重要な部分:

CFLAGS = 
OUTFILE = fancy_exe
[...]
$(CC) $(CFLAGS) $(DBUG) workfile.o insert.o -o $(OUTFILE)

これはうまくいくはずです...またはoutfile変数をスキップしてexeを手動で配置することもできます。

于 2012-09-26T10:14:17.013 に答える
1

あなたのCFLAGS使い方が間違っています。-oオプションは前に配置exeCFLAGS、コンパイラに関連するフラグを含める必要があります (-O3 -Wall -Wextra -Werrorたとえば)。

これを試して:

CFLAGS = -Wall -Wextra -Werror

exe: workfile.o insert.o
    $(CC) $(CFLAGS) $(DBUG) workfile.o insert.o -o exe

PS:必要に応じDBUGて剥がして貼り付けることができます。これは、通常の Makefile で使用される方法です。-gCFLAGS

于 2012-09-26T10:10:18.930 に答える
1

-oを入れるのは良い考えではないと思います。CFLAGSむしろ削除-oしたいと思います。

CFLAGS = -o->CFLAGS =

これで で作業できます。exe出力パスは-oすぐに続きます。

exe: workfile.o insert.o
    $(CC) $(CFLAGS) $(DBUG) workfile.o insert.o exe

=>

exe: workfile.o insert.o
    $(CC) $(CFLAGS) $(DBUG) -o exe workfile.o insert.o

したがって、完全なメイクファイルは次のようになります。

CC = gcc
FILES = workfile.c insert.c
TARGETS = exe
CFLAGS =
DBUG =
RM = rm -f
OBJS = *.o

#Master Rule

all: $(TARGETS)

#Build

exe: workfile.o insert.o
    $(CC) $(CFLAGS) $(DBUG) -o exe workfile.o insert.o

#workfile

workfile.o: workfile.c
    $(CC) $(DBUG) -o workfile.o -c workfile.c

insert.o: insert.c
    $(CC) $(DBUG) -o insert.o -c insert.c

clean:  
    $(RM) $(TARGETS) $(OBJS)
于 2012-09-26T10:16:42.553 に答える