【问题标题】:cl.exe in cygwin shellcygwin shell 中的 cl.exe
【发布时间】:2012-12-14 05:40:28
【问题描述】:

我有一个主机系统和一个虚拟机,我正在尝试在两者中设置类似的环境。 我还安装了 cygwin 和 Visual Studio 10。 我在构建中遇到了问题,我终于设法找到了主机和虚拟机之间的一个区别。

在我的主机中当我进入 cl 时在 cygwin shell 中我得到以下信息:

$ 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位)

谁能告诉我我可能错过了什么设置?

【问题讨论】:

    标签: visual-studio-2010 windows-7 cygwin


    【解决方案1】:

    您应该做的第一件事是找出CygWin 中的cl 什么地方不起作用。执行命令:

    typeset -f cl
    which cl
    alias cl
    

    并找出它返回的内容。如果不是 MS 编译器,那是你的问题。

    除此之外,当您尝试从 cmd 窗口而不是 CygWin bash 运行 cl 时,找出错误环境的作用。


    根据您的评论:

    在我的虚拟机上,它是:
      <strong>$ which cl</strong><br>  <strong>/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl</strong>

    这对于 32 位 VM 来说绝对是错误的。您正在尝试在不支持它的系统上使用 64 位 AMD 编译器。

    您应该更改路径以使用 32 位编译器。但是,我不确定您是否拥有一个,因为 amd64ia64x86_amd64x86_ia64 似乎都表示 64 位编译器。

    bin 直接下的那个可能没问题,您必须对其进行测试才能确定(可能使用dumpbin,它应该能够告诉您可执行文件的文件格式)。

    【讨论】:

    • 我的主机它的 $ which cl /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/amd64/cl 在我的虚拟机中它是 $ which cl /cygdrive/c /程序文件/Microsoft Visual Studio 10.0/VC/bin/x86_amd64/cl
    • 别名返回 $ alias cl bash: alias: cl: not found
    • typeset -f cl - 这也不会返回任何东西
    • @newbie,第二条/第三条评论没问题。它可能既不是别名也不是函数,在这种情况下,which 将是控制因素。
    • 简单说明一下——我的处理器是intel i7,在设置visual studio 10/bin的路径时,bin amd64、ia64、x86_amd64和x86_ia64下有四个文件夹,还有cl.exe文件在他们所有人之下。 bin 文件夹下还有一个 cl.exe 文件。那么应该设置哪一个..是直接存在于bin文件夹下的cl.exe还是x86文件夹下的那个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    相关资源
    最近更新 更多