【问题标题】:Creating a stand-alone executable file for c++ code using Visual Studio express 2013使用 Visual Studio express 2013 为 c++ 代码创建独立的可执行文件
【发布时间】:2015-10-27 00:34:31
【问题描述】:

我需要在 Visual Studio Express 2013 中为我的项目创建一个 .exe。我有一个表单并创建为运行多线程。 .exe 文件需要在不同的计算机上运行。该项目构建没有错误并完美运行。我读过线程说我需要在属性 -> c/c++ -> 代码生成 -> 运行时库中更改Multi-threaded DLL (/MD) to Multi-threaded (/MT) 以在另一台计算机上运行 .exe 文件。在我构建项目时尝试此操作后,已发生错误:“Error 2 error D8016: '/clr' and '/MT' command-line options are incompatible".有关如何解决此问题的任何建议?

编辑 我尝试创建一个文件夹并将 .exe 文件(在 /MD 中)与丢失的 DLL 文件一起添加。我尝试在另一台计算机上运行 .exe 文件,然后出现不同的错误:“应用程序无法正确启动 (0xc000007b)”

【问题讨论】:

  • 当您创建项目时指定了错误的设置,您使用的是 .NET 编译器而不是本机编译器。
  • @MarkRansom 当我将它转回 /MD 时,.exe 仍然无法在另一台计算机上运行。因此,这意味着我必须将 clr 和 crt 安装到我要运行 .exe 文件的另一台计算机上?

标签: c++ multithreading visual-studio-2013 executable


【解决方案1】:
  1. 如果构建成功,您将拥有“可以在不同计算机上运行的 .exe”。

  2. Visual Studio 支持“标准”C++ 和 C++/CLI,它允许 .Net 语言扩展,并作为 .Net 托管代码运行。

  3. 您的 /clr 开关意味着您正在(可能是无意中)构建 C++/CLI 程序。

  4. 建议:禁用 CLR:

    C++ > 常规 > “使用公共语言运行时支持编译” > “否”

  5. 如果您的源代码包含任何 CLI 扩展,那么现在构建应该会失败,您可以替换标准 C++ 等效项。

  6. 相反,如果您想要一个 C++/CLI 程序 - 它应该能够在任何具有适当 .Net 运行时的 Windows PC 上运行。只需关闭“/MT”选项(所有 .Net 程序都支持多线程)并重新构建。

【讨论】:

  • 我将 Compile with Common Language Runtime Support 更改为“No”,然后出现 140 个错误。 100 个表单智能错误和 40 个来自我的命名空间。
  • @rocky 您可能正在尝试为您的 UI 使用 .NET 类。如果您不打算依赖 .NET 库和运行时,那就大错特错了。您必须使用不同的技术(例如 MFC)重新开始。
  • @MarkRansom 还有其他选择吗?
  • @rocky 我不知道,但我在该领域没有太多经验。我认为 C++ 和 .NET 的组合令人厌恶,如果你想全力以赴 .NET,你应该使用 C#。
猜你喜欢
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2010-09-16
相关资源
最近更新 更多