2012-02-06 13 views
6

पर मैं MSVC लिंकर का उपयोग कर आईसीयू कोड के लिए कोशिश कर रहा हूँ अंत करने के लिए। हालांकि, शुरू करने Cygwin/usr/स्थानीय/बिन और पथ के सामने/usr/bin देता है, link.exe के कारण हमेशा की तरह, Cygwin संस्करण कॉल करने के लिए MSVC संस्करण के बजाय। मैं इस कॉन्फ़िगरेशन समस्या को कैसे ठीक कर सकता हूं? वर्तमान में, मैं वीएस कमांड प्रॉम्प्ट लॉन्च करता हूं, फिर cygwin.bat लॉन्च करता हूं।

/usr/स्थानीय/बिन:/usr/bin:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट एफ #/v4.0:/cygdr Ive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट दृश्य स्टूडियो 10.0/VSTSDB/नियोजित करें:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0/Common7/आईडीई:/cygdrive/सी/Progra मीटर Files (x86)/माइक्रोसॉफ्ट दृश्य स्टूडियो 10.0/कुलपति/बिन :/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट दृश्य स्टूडियो 10.0/Common7/उपकरण: /cygdrive/c/Windows/Microsoft.NET/F ramework/v4.0.30319:/cygdrive/सी/विंडोज/माइक्रोसॉफ्ट। नेट/फ्रेमवर्क/v3.5:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0/कुलपति/VCPackages:/cygdrive/सी/प्रोग्राम राम Files (x86)/HTML सहायता कार्यशाला:/cygdrive/सी/कार्यक्रम फाइलें (x86)/माइक्रोसॉफ्ट विस ual स्टूडियो 10.0/टीम टूल्स/प्रदर्शन उपकरण:/साइग्राइड/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रो रोसॉफ्ट एसडीके/विंडोज/वी 7.0 ए/बिन/नेटफैक्स 4.0 टूल्स:/साइग्राइड/सी/प्रोग्राम Files (x86)/एम आई crosoft SDKs/विंडोज/v7.0A/बिन:/cygdrive/सी/कार्यक्रम फ़ाइलें/आम फ़ाइलें/माइक्रोसॉफ्ट साझा/विंडोज लाइव:/cygdrive/सी/विंडोज/system32:/cygdrive/सी/विंडोज़:/साइग्राइव/सी /विन्डोज़/सिस्टम सिस्टम /Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygd राइव/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट एसक्यूएल सर्वर/100/उपकरण/बिन्न:/cygdrive/c/प्रोगर एम फ़ाइलें/माइक्रोसॉफ्ट एसक्यूएल सर्वर/100/उपकरण/बिन:/cygdrive/सी/प्रोग्राम फ़ाइलें/माइक्रोसॉफ्ट एसक्यूएल सर्वर/100/डीटीएस/बिन:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/माइक्रोसॉफ्ट एएसपी.NET/ASP.N ईटी वेब पेज/v1 .0:/cygdrive/c/प्रोग्राम फ़ाइलें/कछुआ एचजी:/cygdrive/c/प्रोग्राम फ़ाइलें (x86) /GtkSharp/2.12/bin:/cygdrive/c/Users/tim/AppData/Roaming/npm:/cygdrive/ सी/पी rogram Files (x86)/NodeJS:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/आम फ़ाइलें/Intuit/QB POSSDKRuntime:/cygdrive/सी/प्रोग्राम फ़ाइलें (x86)/Git/cmd

आईसीयू मुझे

करने के लिए कहता सुनिश्चित करें कि पथ के आदेश MSVC, Cygwin, और फिर अन्य पथ है। कॉन्फ़िगर स्क्रिप्ट को सिगविन (उदा। Grep) में कुछ टूल की आवश्यकता होती है।

अद्यतन। मेरे cygwin.bat इस तरह दिखता है:

बंद @echo

सी: chdir सी: --login मैं

बहुत उपयोगी नहीं \ cygwin \ बिन

बैश ।

+0

क्या आपकी 'cygwin.bat' फ़ाइल' पथ 'पर्यावरण चर सेट करती है? – sarnold

+1

यह वास्तव में superuser.com पर होना चाहिए, लेकिन अपनी होम निर्देशिका में .bash_profile फ़ाइल को देखें। आपका पथ सबसे अधिक संभावना है और आप इसे संशोधित करने में सक्षम होना चाहिए। –

+0

हम्म, मैंने उस पर भी देखा, लेकिन मेरे पास सब कुछ है [-f "$ {HOME} /। Bashrc"]; फिर स्रोत "$ {HOME} /। bashrc" fi और .bashrc में बहुत अधिक नहीं है। क्या कोई डिफ़ॉल्ट प्रोफ़ाइल है जो/usr/local/bin को पूर्ववत करता है जिसे मैं इसके बजाय जोड़ सकता हूं? – tofutim

उत्तर

7

सिगविन की डिफ़ॉल्ट स्थापना के लिए, पथ सेट/etc/profile है। आप पथ को संशोधित कर सकते हैं ताकि/usr/local/bin:/usr/bin को प्रीपेड किए जाने के बजाय जोड़ा जा सके।

# PATH="/usr/local/bin:/usr/bin:${PATH}" 
PATH="${PATH}:/usr/local/bin:/usr/bin/" 

में परिणामी:

Setting environment for using Microsoft Visual Studio 2010 x86 tools. 

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>c:\cygwin\cygwin.bat 

[email protected] ~ 
$ printenv PATH 
/cygdrive/c/Program Files (x86)/Microsoft F#/v4.0:/cygdrive/c/Program Files (x86 
)/Microsoft Visual Studio 10.0/VSTSDB/Deploy:/cygdrive/c/Program Files (x86)/Mic 
rosoft Visual Studio 10.0/Common7/IDE:/cygdrive/c/Program Files (x86)/Microsoft 
Visual Studio 10.0/VC/BIN:/cygdrive/c/Program Files (x86)/Microsoft Visual Studi 
o 10.0/Common7/Tools:/cygdrive/c/Windows/Microsoft.NET/Framework/v4.0.30319:/cyg 
drive/c/Windows/Microsoft.NET/Framework/v3.5:/cygdrive/c/Program Files (x86)/Mic 
rosoft Visual Studio 10.0/VC/VCPackages:/cygdrive/c/Program Files (x86)/HTML Hel 
p Workshop:/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/Team Too 
ls/Performance Tools:/cygdrive/c/Program Files (x86)/Microsoft SDKs/Windows/v7.0 
A/bin/NETFX 4.0 Tools:/cygdrive/c/Program Files (x86)/Microsoft SDKs/Windows/v7. 
0A/bin:/cygdrive/c/Program Files/Common Files/Microsoft Shared/Windows Live:/cyg 
drive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/ 
cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x8 
6)/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL S 
erver/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/Binn 
:/cygdrive/c/Program Files (x86)/Microsoft ASP.NET/ASP.NET Web Pages/v1.0:/cygdr 
ive/c/Program Files/TortoiseHg:/cygdrive/c/Program Files (x86)/GtkSharp/2.12/bin 
:/cygdrive/c/Users/tim/AppData/Roaming/npm:/cygdrive/c/Program Files (x86)/nodej 
s:/cygdrive/c/Program Files (x86)/Common Files/Intuit/QBPOSSDKRuntime:/cygdrive/ 
c/Program Files (x86)/Git/cmd:/usr/local/bin:/usr/bin/ 

[email protected] ~ 
$ which link 
/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/BIN/link 
+0

धन्यवाद, यह भी मेरे प्रश्न का उत्तर दिया ... –

+0

जब मैं पूछता हूं और उत्तर दिया तो मैं इसे वापस प्यार करता हूं। – tofutim

3

मुझे लगता है कि एक क्लीनर विधि ORIGINAL_PATH चर कि Cygwin के /etc/profile में बन जाता है उपयोग करने के लिए है। इस फ़ाइल को संशोधित करने के बजाय, का उपयोग करने के लिए अपनी .bashrc फ़ाइल को संशोधित करें और फिर /usr/local/bin और /usr/bin संलग्न करें।

.bashrc:

export PATH=$ORIGINAL_PATH:/usr/local/bin:/usr/bin 

तो फिर तुम Cygwin स्थापना फ़ाइलें संशोधित करने के लिए नहीं है।

+1

यह वास्तव में '/ etc/profile' (इस प्रकार भविष्य के अपडेट को रोकने) को संशोधित किए बिना इसे करने का एक क्लीनर तरीका है। हालांकि, यह केवल बेस-यूटिल्स के संस्करण 4.1-3 के बाद से संभव है (इस सवाल के बाद मूल रूप से पूछा गया था)। साथ ही, पर्यावरण चर को वास्तव में '.bashrc' में सेट नहीं किया जाना चाहिए: लॉगिन खोल में पर्यावरण चर सेट करने के लिए' .bash_profile' या'profile' का उपयोग करें। –

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