से संकलित करते समय पथ शामिल करें मैं संकलन के दौरान अपने प्रोजेक्ट समूह द्वारा उपयोग किए जाने वाले अतिरिक्त पथ जोड़ने की कोशिश कर रहा हूं। चूंकि सी ++ बिल्डर 2010msbuild का उपयोग करता है मैंने इसके लिए प्रलेखन को देखने का प्रयास किया है और मुझे जो भी मिल सकता है उसके अनुसार अतिरिक्त लाइबपाथ एक संपत्ति के रूप में पास योग्य होना चाहिए। i.eअतिरिक्त लाइब्रेरी जोड़ना और कमांड लाइन
msbuild /p:AdditionalLibPaths=C:\FooBar\Libs /t:build foo.groupproj
लेकिन यह मेरे द्वारा जोड़े गए पथों का उपयोग नहीं करता है। मैं पहले देखा है कि कुछ संपत्ति के नाम कुलपति ++ और सी ++ बिल्डर के बीच भिन्न जब MSBuild और आश्चर्य के लिए पारित किया है, तो सी ++ बिल्डर कुछ अन्य संपत्ति के नाम का उपयोग हो सकता है अतिरिक्त lib जोड़ने और फ़ोल्डरों शामिल करने के लिए?
मैं को प्रोजेक्ट में परिभाषित मौजूदा पथ को प्रतिस्थापित नहीं करना चाहता हूं बल्कि अतिरिक्त जोड़ना चाहता हूं। इसके लिए तर्क यह है कि जब परियोजना हमारे बिल्ड सर्वर पर बनाई जाती है तो कुछ पुस्तकालय एक मानक स्थान पर रहते हैं जो कि विकास मशीन पर कहां से स्थापित हो सकता है।
MSBuild acutally एक MSBuild स्क्रिप्ट फ़ाइल बारी टैग का उपयोग कर .groupproj सहित अतिरिक्त स्क्रिप्ट्स कॉल में है कि कहते हैं। मुझे पता है कि msbuild का एक नया उदाहरण टैग का उपयोग करते समय बनाया गया है, इसलिए मुझे पता है कि मुझे अपनी स्क्रिप्ट में उस कार्य को चलाने के दौरान संपत्ति को जोड़ना होगा।
<MSBuild Targets="Build" Projects="..\Foo.groupproj" Properties="Config=Debug (property to add additional paths here!)" />
अद्यतन:
सी ++ बिल्डरIncludePath और ILINK_LibraryPath का उपयोग करने की लेकिन इन रास्तों को पहले से ही इस परियोजना फ़ाइल में परिभाषित के ऊपर लिख स्थापित करने लगता है। चूंकि यह फ़ाइल आईडीई द्वारा बनाई और बनाए रखी गई है, इसलिए ओवरराइट के बजाय इसे जोड़ने के लिए कोई भी परिवर्तन आईडीई द्वारा ओवरराइट किया जाएगा। किस तरह की अजीब है, क्योंकि ऐसा लगता है कि यह वास्तव में मानों को संशोधित करना चाहिए
<IncludePath>..\FooBar\;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;Common Components;..\Config\Config32;$(IncludePath)</IncludePath>
अद्यतन 2:
में CodeGear.Cpp.Targets मैं अपने खुद के संपत्तिAdditionalIncludePaths कहा जाता है संपत्ति समूह पथ शामिल करने के साथ झुकाव।
लाइन 251
<PropertyGroup>
<BCC_NoLink>true</BCC_NoLink>
<ILINK_OSVersion Condition="'$(ILINK_OSVersion)'=='' And '$(NoVCL)'!='true'">5.0</ILINK_OSVersion>
<DCC_GenerateCppFiles>true</DCC_GenerateCppFiles>
<ShowStdOut Condition="'$(ShowStdOut)'==''">$(ShowGeneralMessages)</ShowStdOut>
<!-- _TCHAR mapping for Uni^H^H^H character selection -->
<StartupObj Condition="'$(_TCHARMapping)'=='wchar_t'">$(StartupObj)w</StartupObj>
<ILINK_StartupObjs Condition="'$(ILINK_StartupObjs)'==''">$(StartupObj)</ILINK_StartupObjs>
<BCC_GenerateUnicode Condition="'$(_TCHARMapping)'=='wchar_t'">true</BCC_GenerateUnicode>
<!-- Include Paths -->
<Win32LibraryPath Condition="'$(Win32LibraryPath)'==''">$(BDS)\lib</Win32LibraryPath>
<IncludePath Condition="'$(CBuilderIncludePath)'!=''">$(IncludePath);$(CBuilderIncludePath)</IncludePath>
<IncludePath Condition="'$(AdditionalIncludePath)'!=''">$(IncludePath);$(AdditionalIncludePath)</IncludePath>
<BCC_IncludePath Condition="'$(BCC_IncludePath)'!=''">$(BCC_IncludePath);$(IncludePath)</BCC_IncludePath>
<BCC_IncludePath Condition="'$(BCC_IncludePath)'==''">$(IncludePath)</BCC_IncludePath>
<BRCC_IncludePath Condition="'$(BRCC_IncludePath)'!=''">$(BRCC_IncludePath);$(IncludePath)</BRCC_IncludePath>
<BRCC_IncludePath Condition="'$(BRCC_IncludePath)'==''">$(IncludePath)</BRCC_IncludePath>
<DCC_IncludePath Condition="'$(DCC_IncludePath)'!=''">$(DCC_IncludePath);$(IncludePath)</DCC_IncludePath>
<DCC_IncludePath Condition="'$(DCC_IncludePath)'==''">$(IncludePath)</DCC_IncludePath>
<DCC_UnitSearchPath>$(DCC_IncludePath);$(Win32LibraryPath)</DCC_UnitSearchPath>
<DCC_ResourcePath>$(DCC_IncludePath)</DCC_ResourcePath>
<DCC_ObjPath>$(DCC_IncludePath)</DCC_ObjPath>
<TASM_IncludePath Condition="'$(TASM_IncludePath)'!=''">$(TASM_IncludePath);$(IncludePath)</TASM_IncludePath>
<TASM_IncludePath Condition="'$(TASM_IncludePath)'==''">$(IncludePath)</TASM_IncludePath>
के आसपास तो मैं
msbuild /t:build /p:AdditionalIncludePaths=C:\Foo\Include foo.groupproj
कॉल कर सकते हैं यह ठीक काम करता है और जो मैं चाहता है। मुझे पुस्तकालय पथों के साथ ही ऐसा करना होगा।लेकिन मैं इस तरह की एम्ब्रेडरोस की आपूर्ति की गई फ़ाइलों में से किसी एक को हैक करना नहीं चाहता हूं। यह सिर्फ हास्यास्पद है: पी ... क्या पथ और lib पथ जोड़ने के लिए सेट करने के लिए कोई आधिकारिक संपत्ति नहीं है?
बहुत उपयोगी उत्तर, धन्यवाद! इस पर्यावरण परिवर्तनीय के संबंध में, यदि हमें एक से अधिक मूल्य पथ प्रदान करने की आवश्यकता है तो सिंटैक्स कैसा दिखता है? –
@ एनके-एफफोर्ड अर्धविराम के साथ अलग-अलग पथ – Cozzamara