【问题标题】:How to compile a 64-bit application using Visual C++ 2010 Express?如何使用 Visual C++ 2010 Express 编译 64 位应用程序?
【发布时间】:2010-12-24 07:37:40
【问题描述】:

有没有一种简单的方法可以用 32 位版本的 Visual C++ 2010 Express 编译 64 位应用程序?需要哪些配置(如果有)?

【问题讨论】:

    标签: c++ 64-bit visual-studio-express


    【解决方案1】:

    64 位工具不适用于 默认情况下为 Visual C++ Express。到 在 Visual C++ 上启用 64 位工具 Express,安装 Windows 软件 开发工具包 (SDK) 除了 Visual C++ 速成版。否则,一个 当您尝试 将项目配置为针对 64 位 使用 Visual C++ Express 的平台。

    如何:将 Visual C++ 项目配置为面向 64 位平台

    参考: http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

    【讨论】:

    • 这适用于 VB 2010 Express 吗?
    • 由于某种原因,我的 $(WindowsSdkDir) 似乎无法正常工作,但是一旦我手动添加了绝对路径,它就成功了。
    • 按照说明操作后,我不断获得 x64 平台的空白属性页。我必须安装编译器更新here。更多信息请访问KB2519277
    【解决方案2】:

    下载Windows SDK,然后进入查看->属性->配置管理器->活动解决方案平台->新建->x64。

    【讨论】:

    • 要运行什么程序?我没有找到任何提供“视图”的程序
    【解决方案3】:

    我发现了一个重要的步骤来添加这个 - 在您安装 SDK 之后,转到您的项目属性并将 Configuration Properties->General->Platform Toolset 从 v100 或其他任何内容更改为 Windows7.1SDK。这会将 $(WindowsSdkDir) 更改为正确的位置,并且似乎也解决了我遇到的其他一些困难。

    【讨论】:

      【解决方案4】:

      并确保您下载了 Windows7.1 SDK,而不仅仅是 Windows 7。这让我很头疼。

      【讨论】:

        【解决方案5】:

        以下是分步说明:

        1. 下载并安装 Windows 软件开发工具包 7.1 版。 Visual C++ 2010 Express 不包含 64 位编译器,但 SDK 包含。 SDK 链接:http://msdn.microsoft.com/en-us/windowsserver/bb980924.aspx
        2. 更改您的项目配置。转到项目的属性。在对话框的顶部会有一个“配置”下拉菜单。确保选择“所有配置”。还会有一个“平台”下拉菜单显示“Win32”。最后在右侧有一个“配置管理器”按钮 - 按下它。在出现的对话框中,找到您的项目,点击平台下拉菜单,选择新建,然后选择 x64。现在将“活动解决方案平台”下拉菜单更改为“x64”。当您返回“属性”对话框时,“平台”下拉菜单现在应该显示为“x64”。
        3. 最后,更改您的工具集。在项目的 Properties 菜单中,在 Configuration Properties |常规,将 Platform Toolset 从“v100”更改为“Windows7.1SDK”。

        无论如何,这些步骤对我有用。有关第 2 步的更多详细信息,请参阅 Microsoft 的参考资料,之前的海报提到:http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

        【讨论】:

        • 恭喜 - 您的回答刚刚为您赢得了 275 个代表。感谢您的精彩回答!
        • 我有 Windows XP,但 SDK 适用于 Windows 7。这还能用吗?
        • @0x499602D2:我不知道。我希望如果 Visual C++ 和 SDK 版本相同,它会。你试过了吗?
        • 这只有在安装了此处提到的补丁 3 和 4 后才对我有用:stackoverflow.com/a/8334985/429873
        • @Matt:这一切都适用于我在 WinXP 64 位上。什么是Platform Toolset改成Win7.1SDK的原因?
        【解决方案6】:

        在 64 位环境中编程与 32 位环境有很大不同。 生成的代码在 32 位和 64 位代码中具有完全不同的汇编结构,甚至与函数通信的协议也发生了变化。所以你不能使用 32 位编译器生成 64 位代码。

        您可能希望看到article on Microsoft's web site 以 64 位目标为目标但使用 32 位开发机器。

        【讨论】:

        • 给出的答案是根据英特尔文档
        • 是的,任何依赖项都必须使用 64 位编译器进行(重新)编译,否则链接步骤将失败。
        【解决方案7】:

        请注意,如果安装了 Windows SDK v7.1,则将 Visual Studio 2010 Professional 或 Visual Studio 2010 Express 升级到 Visual Studio 2010 SP1 时会删除 Visual C++ 编译器。

        有关解决此问题的说明,请参阅 Microsoft 支持网站上的 KB2519277

        【讨论】:

        • 这最好用作评论,因为它实际上并没有回答手头的问题。
        【解决方案8】:

        正如 Jakob 所说:如果存在 MS VC++ x64 和 x86 运行时以及版本 10.0.40219 的可再发行组件,则无法安装 windows sdk 7.1。删除它们后,win sdk install 没问题,VS C++ SP1 可以再次正常安装。

        亲切的问候

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-15
          相关资源
          最近更新 更多