2012-12-14 89 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