1

次の Makefile の 4 行目に意図的なエラーがあるとします。

テンプレートを定義する
全て:

この行にはいくつかのエラーが含まれています
エンデフ

$(eval $(TEMPLATE を呼び出す))

を実行すると、次のようになります。

$ make-3.81
Makefile:7: *** セパレータがありません。止まる。
$

Make は 7 行目にエラーがあることを教えてくれますが、7 行目で TEMPLATE 変数が展開されているため、技術的には正しいのですが、これはあまり役に立ちません。が何らかの方法で 4 行目のエラーを直接指摘できれば、はるかに便利です。これを行う方法はありますか?

違いがある場合、これは GNU make-3.81 です。

4

1 に答える 1

1

Electric Make は、make の高性能な GNU make 互換の実装であり、必要な方法でエラーを報告します。

$ cat Makefile 
define BOGUS
foo: bar
    abcd

endef

$(eval $(BOGUS))
$ gmake
Makefile:7: *** missing separator.  Stop.
$ emake
Makefile:7:eval:2: *** missing separator.  Stop.

商用製品ですが、Electric Cloud から無料版をダウンロードできます。

免責事項: 私は Electric Make のアーキテクトです。

于 2013-11-12T06:58:37.820 に答える