如何加载64位Visual Studio工具命令提示符?

时间:2011-02-26 18:41:41

标签: visual-studio-2010 windows-7 64-bit

我的开发机器正在运行Windows 7 Ultimate x64。我安装了Visual Studio 2010 Ultimate。当我打开 Visual Studio命令提示符(2010)时,我收到消息

  

设置使用Microsoft Visual Studio 2010 x86工具的环境。

我还在Windows PowerShell用户配置文件中设置了PowerShell Community Extensions。我使用Invoke-BatchFile cmdlet将Visual Studio工具安装到我的所有PowerShell会话中

$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
$vcvars = "${env:VS100COMNTOOLS}..\..\VC\vcvarsall.bat"
Invoke-BatchFile $vcvars $vcargs

我的vcargs已解析为amd64。我在vcvarsall.bat文件中查找了x64批处理文件的位置,并获得了~dp0bin\amd64\vcvars64.bat。该目录(和文件)不存在。

如何正确安装vcvars64.bat文件?

5 个答案:

答案 0 :(得分:5)

在批处理器中运行时,%~dp0会扩展到执行.bat文件的路径。因此,在VS2010的默认安装中,它解析为c:\ program files \ microsoft visual studio 10.0 \ vc \ bin \ amd64 \ vcvars64.bat。这确实是遗漏的,这是一个他们似乎不是interesting in fixing的错误。

请改用“x86_amd64”。您将获得交叉编译器,与IDE使用的相同。

答案 1 :(得分:4)

安装x64组件

问题是Visual Studio的安装不完整。我只安装了C#组件。我需要至少安装 Visual C ++ x64编译器和工具

将组件添加到现有安装

我有problems将这些组件添加到现有安装中。 VS2010,特别是安装了SP1,在修改安装方面有很多错误。我遇到了某种路径未找到错误

  1. 我首先卸载了SP1。我需要手头的VS2010安装媒体(unpack到目录,插入真实光盘或mount到虚拟驱动器)。
  2. 然后我将VC ++组件添加到VS安装
  3. 然后我就可以重新安装SP1。

答案 2 :(得分:0)

我多次遇到大致相同的问题。似乎MS为此设置的结构是如此脆弱,以至于在同一台机器上安装或移除任何软件(或者,显然,在该机器附近的任何地方呼吸)可以并且将会破坏它。更糟糕的是,他们有一个几乎难以理解的批处理文件互相调用的网络,最终会以几乎最迂回的方式执行一些相当简单的任务。

虽然我认为它浪费了一点内存,但我决定稍微简化一下,并使用它:

#include <windows.h>
#include <iostream>
#include <string>
#include <process.h>

void setenv(std::string const &name, std::string const &value) { 
    SetEnvironmentVariable(name.c_str(), value.c_str());
}

std::string vs_base = "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\";
std::string vc_base = vs_base + "VC\\";
std::string sdk_dir = "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\";

int main(int argc, char **argv) { 
    char inc_name[] = "INCLUDE";
    char lib_name[] = "LIB";
    char path_name[] = "PATH";

    std::string inc_dir = getenv(inc_name);
    std::string lib_dir = getenv(lib_name);
    std::string path_dir = getenv(path_name);

    inc_dir = vc_base + "include;" + sdk_dir + "include;" + inc_dir;
    lib_dir = vc_base + "lib;" + sdk_dir + "lib;" + lib_dir;
    path_dir = vc_base + "bin;" + sdk_dir + "bin;" + vs_base + "Common7\\IDE;" + path_dir;

    setenv(inc_name, inc_dir);
    setenv(lib_name, lib_dir);
    setenv(path_name, path_dir);

    char path[MAX_PATH];

    GetSystemDirectory(path, sizeof(path));
    strcat(path, "\\cmd.exe");
    _spawnlp(_P_WAIT, path, path, NULL);

    return 0;
}

您必须调整顶部的基本目录,以确定安装了物品的位置。有一天,我想我应该重写这个以使用一个单独的配置文件(我已经完成了一个应该运行得相当好的XML格式),但这已经足够好了,我没有费心去完成它,无论如何,对于程序员来说,做一个微不足道的修改和重新编译并不是特别麻烦。

答案 3 :(得分:0)

我遇到了问题,我有视觉工作室2010专业版(我猜不是SP1,它说&#34;版本10.0.30319.1 RTMRel&#34;在关于),我也遇到了问题在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC文件夹中,它有vcvarsall.bat,但它试图找到任何其他.bat文件的所有路径都是无效的,我也没有其他的bat文件。

我遇到了this forum post,这是解决我问题的唯一方法。 这里的一些人也说#34;只需使用SetEnv&#34;但是我不知道它在哪里,因为它不在我的PATH中(输入setenv会导致找不到命令&#39;),所以这是一个更完整的答案,我是&#39;我在这里发帖,所以人们不必像我这么长时间一样挣扎

出于档案目的在此处发布:

  

批处理文件将环境参数设置为64位编译   包含在Windows SDK中。

     

安装Windows SDK后,使用以下调用CALL   &#34; C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd&#34; / 64

     

或创建文件C:\ Program Files(x86)\ Microsoft Visual Studio   10.0 \ vc \ bin \ amd64 \ vcvars64bat,上面一行。

答案 4 :(得分:-1)

您是否拥有Microsoft Windows SDK 7.1?

打开普通的Visual Studio命令提示符并键入:

setenv /x64

如果缺少64位编译器,则可能需要阅读KB2519277

相关问题