【问题标题】:VS 2008 - Link against older C runtimeVS 2008 - 链接到旧的 C 运行时
【发布时间】:2009-03-28 18:21:29
【问题描述】:

如何使用 Visual C++ 2008 进行编译并链接到旧版本的 C 运行时(我想要版本 7 而不是 9)?

【问题讨论】:

    标签: c++ visual-studio-2008


    【解决方案1】:

    我认为您需要做的是为您的项目找到 Linker -> Input 属性页,并告诉它专门忽略 msvcrtd.dll / msvcrt.dll,然后显式链接到您想要的版本(完整路径)。不知道如果他们有相同的名字会发生什么......

    【讨论】:

      【解决方案2】:

      VS 只是一个 IDE。您可以使用它来构建旧工具集,但需要进行一些调整 - 您需要安装两个并排的 VS 安装(例如 VS2008 + vs6)并加载不同的 VSARGS。请参阅来自 Bojan Resnik 的出色 step by step

      请注意,在 VS2010 中,此解决方案不适用 - 它有一个新的每个项目设置->常规->“平台工具集”。 如果需要,安装this 并手动更新项目设置->VC++ 目录(或手动更改默认settings)。

      【讨论】:

      • 嗨,我已经按照您的评论安装了 Daffodil,但我不确定如何处理 VC++ 目录。请问您能给我一些建议吗?
      • 好吧,IIRC,安装该工具后,您只需要选择工具链(而不是修改 VC 目录...)。请参阅“如何启用原生多目标?”下的blogs.msdn.com/b/vcblog/archive/2009/12/08/…
      【解决方案3】:

      我认为微软明确表示“不要这样做”。问题是,msvcrt.dll 现在被认为是操作系统的一部分,而不是任何特定应用程序的一部分,也不是可再分发的。 MS 可能会使用 Service Pack 对其进行更新,并且可能会显着改变行为,就像他们对 XP SP2 所做的那样。这会破坏应用程序!所以...Don't Do It

      【讨论】:

      • 如果您使用 vs2008 构建您的应用程序,它将依赖 msvcr09.dll,它存在于 winsxs 文件夹中,而不是 windows\system32 文件夹中
      • 我不知道你在回答什么问题,但肯定不是 Jimmy 在这里提出的问题......
      猜你喜欢
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2012-05-22
      相关资源
      最近更新 更多