私は長い間このような奇妙なルールを使用してきましたが、突然彼らは新しい環境を壊しています。%と*一緒に依存関係の行
これを行うには堅牢な方法がありますか?私のボックスで
all: test.1.out
test.%.out: %/test*.out
/bin/cp -f $< [email protected]
(Ubuntuの):
alishan:~/Dropbox/make_insanity> make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for x86_64-pc-linux-gnu
alishan:~/Dropbox/make_insanity> make
/bin/cp -f 1/test.out test.1.out
他の人のMacのコードは、Ubuntuマシン、Ubuntuの仮想マシンのこの種には問題はありません。 makeのバージョンはすべてわからないが、OKコードのようだ。
私のmageiaサーバーで、クリア後も同じディレクトリにあります。
[dus[email protected] make_insanity]$ make --version
GNU Make 3.82
Built for x86_64-mageia-linux-gnu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[[email protected] make_insanity]$ make
make: *** No rule to make target `test.1.out', needed by `all'. Stop.
[[email protected] make_insanity]$
問題の適切なテキスト「修正」に%
または*
のいずれかを変更するが、もちろん必要な一般性を生成しません。
私は、3.81から3.82への変更が起こりそうなことが示唆されています。私はリリースノートを見ましたが、適用されたようなものは見つかりませんでした。 https://lists.gnu.org/archive/html/make-alpha/2010-07/msg00025.html –