क्या अतिरिक्त preprocessor # defv कमांड लाइन में परिभाषित करने का कोई तरीका है?मैं devenv कमांड लाइन में preprocessor #define कैसे जोड़ूं?
उत्तर
मुझे पूरी तरह से यकीन नहीं है कि वीसीबिल्ड कमांड लाइन द्वारा आपका क्या मतलब है, लेकिन यदि आपका मतलब विज़ुअल सी ++ कमांड लाइन कंपाइलर है तो आप ऐड/डिक्सxx द्वारा परिभाषित जोड़ सकते हैं, उदा।
cl.exe /DSHAREWARE ....
अतिरिक्त टिप्पणी के आधार पर जवाब:
आप अतिरिक्त पूर्वप्रक्रमक साथ सीएल वातावरण चर सेट करने के लिए सक्षम होना चाहिए निर्धारित करें:
SET CL=/DSHAREWARE
devenv ....
Mere जानकारी MSDN
दिखाता है कि मुझे दिमाग में devenv.exe था। सीएल केवल आईआईआरसी संकलित करता है। डेवेन भी लिंक कर रहा है। –
यह ठीक काम करता है - मुझे अभी कहीं और जवाब मिला है। फिर भी धन्यवाद! –
ठीक है, तो आपको जवाब स्वीकार करना चाहिए ताकि अन्य लोग देख सकें कि यह प्रश्न हल हो गया है ... – HakonB
#defines को आपकी विजुअल स्टूडियो प्रोजेक्ट फ़ाइल (.dsp या .vcproj फ़ाइल) में परिभाषित किया गया है। यह एक साधारण पाठ फ़ाइल है। तो आप प्रोजेक्ट फ़ाइल को एक स्क्रिप्ट से संपादित कर सकते हैं, फिर devenv.exe पर कॉल करें।
मेरे मामले में, मुझे अन्य कारणों से डेवेनव का उपयोग करने की आवश्यकता थी, (और साइगविन में चल रहा था, इसलिए मैं sed था)।
मैं परियोजना के गुण SED_REPLACE_THIS
में एक संकलन प्रतीक सेट और फिर sed इस्तेमाल किया कुछ सार्थक करने के लिए यह निर्धारित करने के लिए:, (यानी DONT_CRASH_AS_MUCH
)
sed -i 's/SED_REPLACE_THIS/DONT_CRASH_AS_MUCH/g' project.csproj
अपनी परियोजना सेटिंग्स में निम्नलिखित पूर्वप्रक्रमक परिभाषा जोड़ने :
$ (MyPreprocessorDefinitions);
अपने * .bat फ़ाइल में तो,
रेम #define MY_DEF
सेट MyPreprocessorDefinitions = MY_DEF
devenv.exe का उपयोग करें ...
रेम #undefine MY_DEF
सेट MyPreprocessorDefinitions =
-Dname = value का उपयोग करना? – rsp
नहीं, यह अमान्य वाक्यविन्यास है - यह devenv मदद –