पर मैं लंबे समय से इस तरह के अजीब नियमों का उपयोग कर रहा हूं, लेकिन अचानक वे एक नए वातावरण पर टूट रहे हैं।% और * निर्भरता रेखा
क्या ऐसा करने का कोई मजबूत तरीका है?
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
अन्य लोगों के Macs पर कोड, ubuntu मशीन, ubuntu आभासी मशीनों के इस प्रकार के साथ कोई समस्या नहीं है। अपने सभी संस्करणों को नहीं जानते हैं, लेकिन यह ठीक कोड जैसा लगता है।
समाशोधन के बाद उसी निर्देशिका में मेरे mageia सर्वर पर।
[[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 –