【问题标题】:Unable to build C++/CLI app using VS 2010, .Net 3.5, and 64-bit无法使用 VS 2010、.Net 3.5 和 64 位构建 C++/CLI 应用程序
【发布时间】:2011-08-19 13:36:06
【问题描述】:

我有一个在 Visual Studio 2010 下构建但使用 .Net 3.5 的 C++/CLI 应用程序。根据需要,我手动编辑了我的项目文件以添加值为 3.5 的 TargetFrameworkVersion,并且在我处于 x86(32 位)模式时能够毫无问题地构建它。但是,当我切换到以 x64(64 位)模式构建它时,出现以下错误:

错误 MSB8014:找不到执行路径 (C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\x86_amd64)。

我确实安装了 VS 2008 (9.0),但是 bin 文件夹下没有 x86_amd64 目录。我试图通过添加这个文件夹(以及由于目标文件中的下一行而失败的 amd64 文件夹)来欺骗它,然后我得到了错误:

致命错误 LNK1112:模块机器类型“X86”与目标机器类型“x64”冲突

我无法弄清楚,因为我的项目没有明确的链接。我将与之交互的 C# 程序集切换为在 x64(而不是任何 CPU)中构建,但无济于事。

仅供参考:一切都在 32 位模式下正确构建。如果我切换到 .Net 4.0 (v100),一切都可以在 64 位模式下正确构建。我在发布和调试模式下都遇到了同样的错误。

任何想法都将不胜感激。

【问题讨论】:

  • 你的构建操作系统是多少位?
  • 操作系统是 Windows 7 - 64 位

标签: visual-studio-2010 .net-3.5 c++-cli 32bit-64bit


【解决方案1】:

如果您在项目属性上使用从 V100 更改为 V90 的“工具集”进行编译,并且您在同一台开发机器上安装了 Visual Studio 2008,只需转到控制面板、程序和功能,选择 Visual Studio 2008 ,右键单击,选择卸载/更改,然后选择添加/删除功能,然后当您看到功能列表时,在默认情况下未安装的 Visual C++ 下查找 x64 编译器/文件,但通过单击旁边的复选框,它将添加所需的文件。

【讨论】:

  • 这很糟糕。当安装了很多其他组件时,为什么他们不能默认启用它。非常感谢:)
  • 这似乎只是 VS 2008 Standard 或更高版本的解决方案。 Visual C++ 2008 Express 安装程序似乎没有这样的选项。
【解决方案2】:

在 VS2010 中它应该链接到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64

你可能配置错误,或者是从 vs2008 项目导入的。

转到 Configuration -> General -> Platform Toolset。确保它是 v100 (vs2010)

如果这没有帮助,请查看 Configuration -> VC++ Directories。这就是设置路径的地方。
你可以看到它看起来在 $(VCInstallDir) 中,在你的计算机中设置为 VS2008 路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2011-02-13
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多