0

任意のターゲットを取得し、gcc のラッパーのように動作するユニバーサル Makefile を、パラメーターを使用して作成することは可能ですか? たとえば、これは次のことを意味します。

make 01.c

と同じ結果になります

g++ -o 01.out 01.c
4

3 に答える 3

0

ワイルドカード - を使用できます%

ただし、コマンドラインで指定するのはターゲットであり、ソースではありません。必要なものであり、持っているものではありません。

あなたが望むのはおおよそのようです:

%.out: %.c
    g++ -o $@ $<

つまり、(something).out を作成するには、まず (something).c があることを確認してから、g++ -o (something).out (something).c を実行します。

$@ は常にターゲット ファイルであり、$< は最初の前提条件です。

make 01.outではなく、実行する必要がありますmake 01.c

于 2013-06-27T21:00:18.360 に答える
0

makeあなたがしようとしていることをするためのいくつかの「暗黙のルール」がすでにあります。

たとえば、makefile がなくても、

make 01.o

実行します:

c++ -c -o 01.o 01.cpp

01.cpp現在のディレクトリで呼び出されたファイルが見つかった場合。CXXFLAGSさらにフラグを渡したい場合は、環境変数を設定できます。g++システムコンパイラではなく使用することに本当に設定されている場合はCXX=g++、 も設定できます。

于 2013-06-27T20:56:34.203 に答える