मैं परीक्षण चलाने के लिए एक से थोड़ा hackish makefile मिल गया है हटाना पड़ता है:क्यों ग्नू एक फ़ाइल
### Run the tests
tests := tests/test1 tests/test2 ...
test: $(tests)
$(tests): %: %.c
gcc -o [email protected] $(testflags) $<
[email protected]
यह काम करता है, लेकिन यह कुछ मैं इसे पहले कभी नहीं देखा है ऐसा बनाओ बनाता है। मेरा परीक्षण वर्तमान में टूटा हुआ है, और बस त्रुटि का कारण बनता है। निम्नलिखित आउटपुट देता है:
gcc -o tests/test1 [flags blah blah] tests/test1.c
tests/test1
make: *** [tests/test1] Bus error
make: *** Deleting file `tests/test1'
मैं आखिरी पंक्ति के बारे में उत्सुक हूं। मैंने कभी नहीं देखा है कि पहले ऐसा करें। संकलित परीक्षण को हटाएं क्यों?
नोट: मैंने इसे आसान बनाने के लिए इस उदाहरण को काफी भारी संपादित किया। मैंने कुछ गलतियों को पेश किया होगा।
+1 यह इंगित करने का एकमात्र उत्तर है कि व्यवहार एक बग्गी मेकफ़ाइल के कारण हुआ था जो परीक्षण कार्यक्रम उत्पन्न करने और इसे एक नियम में चलाने के लिए था। –
आईएमओ यह बेहतर समाधान है: क्लीनर, और अधिक "मेक-जैसा"। हालांकि, विवरण अधिक साफ तरीके से संभाला जा सकता है। सबसे पहले मेकफ़ाइल लेखक को यह तय करना होगा: क्या आप परीक्षणों को _always_ करना चाहते हैं, या केवल परीक्षण चलाएं यदि परीक्षण फ़ाइल का पुनर्निर्माण किया गया था (बाद वाला मूल उदाहरण क्या था)। – MadScientist