2012-12-14 87 views
0

我有一個主機系統和一個虛擬機,我正嘗試在兩者中設置類似的環境。 我也安裝了cygwin和visual studio 10。 我在構建中遇到了問題,我終於找到了我的主機和虛擬機之間的一個區別。cygwin外殼程序中的cl.exe

在我的主機時,當我進入CL cygwin外殼,我得到以下

$ cl 
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64 
Copyright (C) Microsoft Corporation. All rights reserved. 

usage: cl [ option... ] filename... [ /link linkoption... ] 

但在我的虛擬機,我沒有得到輸出。

$ cl 

(VM是32位和主機是64位)

有人能告訴我什麼設置我可能就錯過了?

回答

0

你應該做的第一件事是找出什麼cl在CygWin內它不工作。執行命令:

typeset -f cl 
which cl 
alias cl 

並找出它回來了。如果它不是MS編譯器,那就是你的問題。

除此之外,找出當您嘗試從cmd窗口運行cl而不是CygWin bash時,錯誤環境會發生什麼。


基於您的評論:

在我的VM,它是:
    $ which cl
  /cygdrive/c/Program Files/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl

這肯定是不對的32位虛擬機。您正試圖在不支持它的系統上使用64位AMD編譯器。

您應該更改路徑以使用32位編譯器。但是,我不確定您是否有一個,因爲amd64ia64x86_amd64x86_ia64都似乎表示64位編譯器。

直接在bin下的那個可能沒問題,你必須測試它是否確定(可能與dumpbin應該能夠告訴你可執行文件的文件格式)。

+0

我的主機其中$ cl /cygdrive/c/Program Files(x86)/ Microsoft Visual Studio 10.0/VC/bin/amd64/cl在我的虛擬機中它是$哪個cl /cygdrive/c/Program Files/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl – Abi

+0

別名返回$別名cl bash:別名:cl:未找到 – Abi

+0

typeset -f cl - 這也不會返回任何內容 – Abi