2013-12-10 3 views
15

मैं कुछ बिल्ड स्क्रिप्ट पर काम कर रहा हूं, और यह मुझे परेशान कर रहा है। मैं यह सुनिश्चित करना चाहता हूं कि हम पर्यावरण सेटिंग्स से स्वतंत्र हैं, लेकिन यह सुनिश्चित करने के लिए कि मुझे यह समझने की आवश्यकता है कि उपकरण द्वारा सेटिंग्स का उपयोग कैसे किया जाता है।एमएस विजुअल सी/सी ++ के लिए एलआईबी और LIBPATH पर्यावरण चर के बीच क्या अंतर है?

विजुअल स्टूडियो कमांड प्रॉम्प्ट और/या vcvarsall.bat फ़ाइल दो अलग-अलग पर्यावरण चर सेट अप करें: LIB और LIBPATH। मान अलग हैं, लेकिन आंशिक रूप से ओवरलैपिंग। यहाँ मेरी प्रणाली से मान हैं:

LIB=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86; 

LIBPATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral;\Microsoft.VCLibs\11.0\References\CommonConfiguration\neutral; 

मैं सिर्फ दो अलग चर होने के लिए तर्क को समझने के लिए चाहते हैं - स्पष्ट तथ्य यह है कि LIBPATH अधिक libs में लाता है की तुलना में थोड़ा अधिक है। मैंने इसे देखने की कोशिश की है, लेकिन मुझे लिंकर और/या देव पर्यावरण द्वारा उपयोग किए जाने पर स्पष्ट परिभाषा नहीं मिली है।

उत्तर

17

LIB लिंकर के लिए है, यह आयात और स्थिर पुस्तकालयों को खोजने में मदद करता है।

LIBPATH कंपाइलर के लिए है, इसे मेटाडेटा फ़ाइलों को खोजने में मदद करता है। प्रकार पुस्तकालयों, .NET असेंबली, WinRT .winmd फ़ाइलों की तरह।

+6

और फिर भी/LIBPATH लिंकर कमांड लाइन के लिए एक विकल्प है जो पर्यावरण को ओवरराइड करता है। आह! ... मैं इसे अब देखता हूं। डॉक्टर इंगित करता है कि/LIBPATH LIB पर्यावरण चर को ओवरराइड करता है, न कि LIBPATH पर्यावरण चर। यह सिर्फ नामों का एक (बुरा) संयोग है। धन्यवाद। –

संबंधित मुद्दे