2009-11-23 18 views
9

क्या अतिरिक्त preprocessor # defv कमांड लाइन में परिभाषित करने का कोई तरीका है?मैं devenv कमांड लाइन में preprocessor #define कैसे जोड़ूं?

+0

-Dname = value का उपयोग करना? – rsp

+0

नहीं, यह अमान्य वाक्यविन्यास है - यह devenv मदद –

उत्तर

12

मुझे पूरी तरह से यकीन नहीं है कि वीसीबिल्ड कमांड लाइन द्वारा आपका क्या मतलब है, लेकिन यदि आपका मतलब विज़ुअल सी ++ कमांड लाइन कंपाइलर है तो आप ऐड/डिक्सxx द्वारा परिभाषित जोड़ सकते हैं, उदा।

cl.exe /DSHAREWARE .... 

अतिरिक्त टिप्पणी के आधार पर जवाब:

आप अतिरिक्त पूर्वप्रक्रमक साथ सीएल वातावरण चर सेट करने के लिए सक्षम होना चाहिए निर्धारित करें:

SET CL=/DSHAREWARE 
devenv .... 

Mere जानकारी MSDN

+0

दिखाता है कि मुझे दिमाग में devenv.exe था। सीएल केवल आईआईआरसी संकलित करता है। डेवेन भी लिंक कर रहा है। –

+0

यह ठीक काम करता है - मुझे अभी कहीं और जवाब मिला है। फिर भी धन्यवाद! –

+0

ठीक है, तो आपको जवाब स्वीकार करना चाहिए ताकि अन्य लोग देख सकें कि यह प्रश्न हल हो गया है ... – HakonB

1
में पाया जा सकता

#defines को आपकी विजुअल स्टूडियो प्रोजेक्ट फ़ाइल (.dsp या .vcproj फ़ाइल) में परिभाषित किया गया है। यह एक साधारण पाठ फ़ाइल है। तो आप प्रोजेक्ट फ़ाइल को एक स्क्रिप्ट से संपादित कर सकते हैं, फिर devenv.exe पर कॉल करें।

0

मेरे मामले में, मुझे अन्य कारणों से डेवेनव का उपयोग करने की आवश्यकता थी, (और साइगविन में चल रहा था, इसलिए मैं sed था)।

मैं परियोजना के गुण SED_REPLACE_THIS में एक संकलन प्रतीक सेट और फिर sed इस्तेमाल किया कुछ सार्थक करने के लिए यह निर्धारित करने के लिए:, (यानी DONT_CRASH_AS_MUCH)

sed -i 's/SED_REPLACE_THIS/DONT_CRASH_AS_MUCH/g' project.csproj

1

अपनी परियोजना सेटिंग्स में निम्नलिखित पूर्वप्रक्रमक परिभाषा जोड़ने :

$ (MyPreprocessorDefinitions);

अपने * .bat फ़ाइल में तो

,

रेम #define MY_DEF

सेट MyPreprocessorDefinitions = MY_DEF

devenv.exe का उपयोग करें ...

रेम #undefine MY_DEF

सेट MyPreprocessorDefinitions =