0

Makefile を使用してリンクしたい .c ファイルとカスタム .h ファイルがいくつかありますが、試してみた結果はすべて、希望とは異なる結果になりました。

基本的に、私は次のファイルを持っています:rA.c、rA.h、rB.c、rB.h、rC.c、rC.h、rP.c

私が望むのは、makefile を使用して、次のコマンドと同等の結果になるようにすることです: gcc -o rv rA.c rB.c rC.c rP.c

そして、実行可能な「rv」ファイルを生成します。私がこれまでに行ったすべての方法 (確かにヒット&ミスでした) は、各 .c ファイルの中間 .o ファイルを生成しましたが、最終的な rv 実行可能ファイルは生成しませんでした。どんな提案でも大歓迎です。

4

3 に答える 3

1
FILES.o = rA.o rB.o rC.o rP.o
PROGRAM = rv

all: ${PROGRAM}

${PROGRAM}: ${FILES.o}
    ${CC} -o $@ ${CFLAGS} ${FILES.o} ${LDFLAGS} ${LDLIBS}

必要に応じて依存関係やその他のオプションを追加できますが、これは最小限の makefile の基本的な概要です。

どうしても GNUmakeを使用している場合は、コマンド ラインをさらに短縮するための簡略表記があります。

${PROGRAM}: ${FILES.o}
    ${CC} -o $@ ${CFLAGS} $^ ${LDFLAGS} ${LDLIBS}

表示されている最初の表記は、実際に使用する可能性のある のどのバージョンでも機能しmakeます。

于 2013-01-30T05:32:17.717 に答える
0

その結果のコマンドは必要ありません。ファイルを追加すると、うまくスケーリングされません。

必要なのは、次のようなメイクファイルです。

rv: rA.o rB.o rC.o rP.o
    $(CC) -o $@ $+

これにより、gcc個々の.cファイルがオブジェクト ファイルにビルドされ、すべてのオブジェクト ファイルが実行可能ファイルにリンクされます。

于 2013-01-30T05:31:42.800 に答える
0

次のような単純な Makefile を使用できます。

rv: rA.o rB.o rC.o rP.o
    $(CC) -o $@ $^ $(CFLAGS)
于 2013-01-30T05:35:33.087 に答える