2012-02-06 5 views
6

私はMSVCリンカーを使用してICUコードを作成しようとしています。しかし、Cygwinを起動すると、パスの前に/ usr/local/binと/ usr/binが置かれ、MSVCの代わりに常にlink.exeがCygwinのバージョンを呼び出すようになります。この設定の問題を解決するにはどうすればよいですか?現在、私はVSコマンドプロンプトを起動し、cygwin.batを起動します。

は/ usr/local/binにします。/ usr/binに:/ cygdriveの/ C /プログラムファイル(x86の)/マイクロソフト のF#/ V4.0:/ cygdrアイブ/ C /プログラムファイル(x86の)/マイクロソフトVisual Studio 10.0/VC/BIN/Visual Studio 10.0/VSTSDB/Deploy:/ cygdrive/c/Program Files(x86)/ Microsoft Visual Studio 10.0/Common7/IDE:/ cygdrive/c/Progra mファイル(x86)/ Microsoft :/ cygdrive/c/Program Files(x86)/ Microsoft Visual Studio 10.0/Common7/Tools:/cygdrive/c/Windows/Microsoft.NET/F ramework/v4.0.30319:/ cygdrive/c/Windows/Microsoft。/cygdrive/c/Program Files(x86)/ Microsoft Visual Studio 10.0/VC/VCPackages:/ cygdrive/c/Prog ramファイル(x86)/ HTMLヘルプワークショップ:/ cygdrive/c /プログラムファイル (/cygdrive/c /プログラム 10.0 /チームツール/パフォーマンスツール:/ cygdrive/c/Program Files(x86)/ Mic rosoft SDK/Windows/v7.0A/bin/NETFX 4.0ツール:/ cygdrive/c/Program ファイル/共通ファイル/ Microsoft共有/ Windows Live:/ cygdrive/c/Windows/system32:/ cygdrive/c/Program Files/x86/Windows:/ cygdrive/c /Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygd rive/c/Program Files(x86)/ Microsoft SQL サーバー/ 100 /ツール/ cygdrive/c/Program Files/Microsoft SQL サーバー/ 100/DTS/Binn:/ cygdrive/c/Program Files/x86)/ Microsoft ASP.NET/ASP.N ET Webページ/ v1 .0:/ cygdrive/c/Program ファイル/ TortoiseHg:/ cygdrive/c/Program Files (x86)/GtkSharp/2.12/bin:/cygdrive/c/Users/tim/AppData/Roaming/npm:/cygdrive/ C/P rogramファイル(x86の)/ nodejs:/ cygdriveの/ C /プログラムファイル(x86の)/共通 ファイル/インテュイット/ QB POSSDKRuntime:/ cygdriveの/ C /プログラムファイル(x86の)/ Gitの/ CMD

ICUはPATHの順番はMSVC、Cygwinの、そして他の のPATHであることを確認してください

に私に語りました。 configureスクリプトには、Cygwinの特定のツール(grepなど)が必要です。

更新。マイcygwin.batは次のようになりますのchdir C:\ cygwinのを\ビン

のbash -i

ない非常に参考に--login

Cをオフ@echo 。

+0

'cygwin.bat'ファイルが' PATH'環境変数を設定していますか? – sarnold

+1

これは実際にはsuperuser.comにあるはずですが、ホームディレクトリの.bash_profileファイルを見てください。あなたのパスは、そこに設定されている可能性が高く、あなたはそれを変更できるはずです。 –

+0

ええと、私もそれを見ましたが、私が持っているのは、[-f "$ {HOME} /。bashrc"]; ソース "$ {HOME} /。bashrc" fiと.bashrcにはあまり余裕がありません。代わりに/ usr/local/binの前に付けるデフォルトのプロファイルがありますか? – tofutim

答えて

7

Cygwinのデフォルトインストールの場合、PATHは/ etc/profileに設定されています。/usr/local/bin:/ usr/binが付加されるのではなく、追加されるようにPATHを変更することができます。で結果の

# 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

私はクリーンな方法は、Cygwinの/etc/profileに作成されORIGINAL_PATH変数を使用することであると思います。このファイルを変更する代わりに.bashrcファイルをORIGINAL_PATHに変更し、/usr/local/bin/usr/binを追加してください。

.bashrc

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

次にあなたがCygwinのインストールファイルを変更する必要はありません。

+1

これは実際には '/ etc/profile'を修正することなく(これにより将来の更新を防ぎます)、よりクリーンな方法です。しかし、これは 'base-utils'のバージョン4.1-3(この質問の後にリリースされたもの)からのみ可能でした。また、 '.bashrc'に環境変数を設定するべきではありません。' .bash_profile'や '.profile'を使ってログインシェルに環境変数を設定してください。 –

関連する問題