【问题标题】:How to not link against msvcr100.dll?如何不链接到 msvcr100.dll?
【发布时间】:2012-07-23 18:54:33
【问题描述】:

我在 Visual Studio 10 中编译项目,编译后的可执行文件在 win 7 上运行良好,但由于缺少 msvcrt100.dll,它在 win xp 上无法运行。 我尝试使用“/NOTDEFAULTLIB”,但它也删除了我使用的其他一些外部库。 有没有办法不链接到最新的 Microsoft 运行时库?

提前致谢。

【问题讨论】:

    标签: c++ visual-studio-2010 compiler-construction linker msvcrt


    【解决方案1】:

    要不链接到 DLL,您必须静态链接到运行时。

    为此,请转到 C/C++ 属性 -> 代码生成,然后在运行时库下从下拉列表中选择多线程 (/MT) 或多线程调试 (/MTd)。请注意,一旦您使用静态运行时库,您链接的所有其他库代码也必须使用相同的设置构建。而且您可能还必须将其他库添加到链接器 -> 附加依赖项下的输入。

    【讨论】:

      【解决方案2】:

      它只能在 Windows 7 机器上运行,之前有人安装了那个 DLL。

      无需创建安装程序(使用安装项目即可轻松完成),一个简单的修复方法是将 msvcr100.dll 与您自己的二进制文件一起复制。如果您只有一个 EXE,那么简单的解决方案是链接 CRT 的静态版本。切换到 Release 构建,右键单击项目,Properties,C/C++,Code Generation,Runtime Library 设置。将其从默认的 /MD 更改为 /MT。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-14
        • 2011-04-15
        • 2012-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-31
        • 1970-01-01
        相关资源
        最近更新 更多