0

私はこのメイクファイルを持っています:

CC=gcc
CFLAGS= -c -Wall -std=c99 -ggdb

all: plan

plan: plan.o graph.o
    $(CC) $(CFLAGS) plan.o graph.o -o plan

plan.o: plan.c graph.h
    $(CC) $(CFLAGS) plan.c

graph.o: graph.c graph.h
    $(CC) $(CFLAGS) graph.c

run: all
    ./plan

make を実行すると、gcc から「リンクが行われていないため、リンカー入力ファイルは使用されていません」というメッセージが表示されます。これはどういう意味ですか?

4

1 に答える 1

2

-cオプションの意味は次のとおりです。

ソース ファイルをコンパイルまたはアセンブルしますが、リンクは行わないでください。リンク段階は単に完了していません。最終的な出力は、各ソース ファイルのオブジェクト ファイルの形式です。

ビルド時にそのオプションを使用しないでください。

gcc マンを参照してください

アップデート

プランターゲットには、CFLAGS を使用しないでください。

plan: plan.o graph.o
    $(CC) -Wall -std=c99 -ggdb plan.o graph.o -o plan
于 2013-09-30T08:54:31.063 に答える