के लक्ष्य में स्थान की अनुमति दें क्या make.exe का उपयोग करते समय लक्ष्य नामों के अंदर रिक्त स्थान प्राप्त करने का कोई तरीका है?जीसीसी मेकफ़ाइल
"foo bar baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
... तीन के रूप में व्यवहार करने के लिए लग रहे हैं: http://savannah.gnu.org/bugs/?712
संदर्भ के लिए, बड़ी समस्या makefile के टुकड़े आदेशों की तरह है: यह है कि अगर यह वास्तव में प्राचीन बग रिपोर्ट सही है असंभव प्रतीत हो रहा है अलग-अलग कमांड: एक बनाने के लिए "foo (शामिल करें नोट"), एक बार बनाने के लिए, और आखिरकार, एक को बनाने के लिए "(फिर से,")। ऐसा इसलिए है क्योंकि make.exe एक डिलीमीटर के रूप में अंतरिक्ष का उपयोग कर रहा है।
हालांकि, यह मानना उचित है कि कोई "हैलो वर्ल्ड.एक्सई" उदाहरण के लिए बनाना चाहता है। यह संभव प्रतीत नहीं होता है। डबल उद्धरण काम नहीं करते, और न तो करता है अलग शब्द बचने (मैं पढ़ा है कि कहीं न कहीं, लिंक याद नहीं है):
"foo\\ bar\\ baz": $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
तो इसे ठीक करने के लिए किसी भी अन्य रास्ता नहीं है? आधिकारिक मैनुअल केवल tokenize-दर-रिक्त स्थान सामान की पुष्टि करता है, लेकिन किसी भी अन्य उद्देश्य के लिए स्थान का उपयोग करने का तरीका प्रदान नहीं करता है: http://www.gnu.org/software/make/manual/make.html#Rule-Syntax
संपादित करें: के रूप में सुझाव दिया है, मैं एक स्लैश भी कोशिश की है, लेकिन इन्हें डबल स्लेश के समान सटीक प्रभाव पड़ता है। बनाने की शिकायत यह पहला शब्द के लिए नियमों को नहीं मिल रहा है:
mingw32-make.exe: *** No rule to make target `foo', needed by `all'. Stop.
निष्पादन "foo बार baz.exe" सही ढंग से हालांकि उत्पादन किया जाता है, लेकिन जोड़ने प्रति शब्द हर बार किया जाता है।
यह काम नहीं लगता है, संपादन देखें। – Orwell
@ ऑरवेल: फिर, यह ऑपरेटिंग सिस्टम का मामला प्रतीत होता है। आप अपने खोल पर रिक्त स्थान वाली फ़ाइल को कैसे निर्दिष्ट करते हैं? – Matthias