【问题标题】:Compile in Visual Studio 2013 for Visual Studio 2010 Redistributables在 Visual Studio 2013 中为 Visual Studio 2010 Redistributables 编译
【发布时间】:2014-05-08 09:48:41
【问题描述】:

我在我的办公电脑上安装了 MS VS Express 2013,并用它编译了一个 DLL。现在,当我的同事尝试使用它时,她收到有关缺少 MSVCR120.DLL 的错误消息。我们在她的 PC 上找到了 MSVCR100.DLL。我知道我们可以得到 MSVCR120.DLL from Microsoft。然而 它可能需要管理员权限,并且只有我在我们的团队中拥有它们。我想知道是否可以要求 VS 2013 编译 DLL 以便它使用旧版本的可再发行组件?还是安装之前版本的VS是唯一的解决办法?

【问题讨论】:

  • 我很确定您可以针对“110”DLL,但我不太确定“100”DLL。但您始终可以将 DLL 文件复制到程序的安装目录中。
  • @MSalters:(1) 此类复制需要管理员权限。我不是在编写程序,只是创建一个自定义 DLL,然后另一个程序将在一个特殊文件夹中找到它。我们可以在没有管理员权限的情况下访问该文件夹,但不能访问程序的安装目录。 (2) 这种混合不会导致这里描述的内存分配问题:stackoverflow.com/a/19860574/674976
  • 为什么不能安装和使用VC++2010 Express来编译你的DLL?
  • @harper:我可能可以,但我想知道是否有其他选择。
  • @texnic 顺便说一句,您的链接是错误的版本。您需要 2013 再版。很容易将版本号 12 与 name Visual Studio 2013 混淆。

标签: c++ visual-studio


【解决方案1】:

我找到了解决方案 - 在这里:https://stackoverflow.com/a/1073772/674976。可分发的 DLL 可以静态链接到我的 DLL,从而消除依赖关系。这是在 VS 2013 中的 Project Properties (Alt + F7) > Configuration Properties > C/C++ > Code Generation > Runtime Library 中完成的,应该从默认设置为 Multi-threaded (/MT) 多线程 DLL (/MD)

但是,我想知道这样做是否我实际上仍在使用两个版本的可再发行 DLL,因此有混合堆的风险并可能导致memory allocation problems

如果有人提出更好的解决方案或明确解释为什么我应该只使用 Visual Studio 2010,我很乐意接受这是一个答案。

【讨论】:

  • 虽然这确实解决了问题,但只需搜索 2013 VCRedist 并瞧:您有所需 DLL 的安装程序。
  • @crashmstr:正如我在问题中解释的那样,这不是解决方案,因为您需要在目标计算机上拥有管理员权限才能安装可再发行组件。
  • 那么他们如何安装其他软件呢?只需使用该过程。很简单。
  • @crashmstr:这绝非简单。任何软件都应该首先进行分析(为什么我们需要它),然后批准,然后应该设置流程(需要几个月),测试,推出,然后他们会得到正确的文件。我切换到 VS 2010 需要什么 - 一个小时?但如果可能的话,我想使用最新的工具。而这个解决方案实际上正是允许这样做的。
  • ...那么您是如何安装 VS 2013 的?如果您想使用 2013 但离开您的团队使用 2010 并且仍然一起从事项目? 不要
【解决方案2】:

Visual Studio 2013 可以构建 Visual Studio 2010 C++ 项目。为此,您还需要安装 Visual Studio 2010,因为 VS2013 实际上会调用 VS2010 C++ 编译器。

我所做的是在 Visual Studio 2010 中创建解决方案和所有项目,并确保它们正确构建和运行。然后在 Visual Studio 2013 中打开它们,并确保不要将项目升级到 VS2013。

现在您可以使用最新的工具并仍然构建您需要的 VS2010 dll。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2016-03-06
    • 2011-05-21
    • 2023-03-08
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多