【问题标题】:LINK : fatal error LNK1104: cannot open file 'MSVCRTD.lib'链接:致命错误 LNK1104:无法打开文件“MSVCRTD.lib”
【发布时间】:2011-09-07 20:36:19
【问题描述】:

我是一名 C++ 开发新手。当我尝试在 Microsoft Visual C++ 2010 Express 中调试每个项目时,我遇到了错误消息指示“LINK :fatal error LNK1104: cannot open file 'MSVCRTD.lib'”。我在 Stack Overflow 和 Google 上搜索了任何可能的解决方案,但我找不到准确而准确的答案。我的理解是“msvcrtd.lib”文件应该在“\Microsoft Visual Studio 10.0\VC\lib”中,但在我的情况下该文件不存在。我该怎么办?

【问题讨论】:

  • 根据 Google:“请将链接器设置中的“子系统”从“Windows”更改为“控制台”。或者反过来。如果您需要它快速工作并且没有时间寻找真正的解决方案,您可以随时在线搜索文件并将其放入链接器路径中
  • 你看到这个问题了吗:stackoverflow.com/questions/927574/…?
  • yosouser,我没有真正理解问题或答案。
  • 如果该文件确实不存在于 \Program Files\Microsoft Visual Studio 10.0\VC\lib\msvcrtd.lib 中,那么您的 VC++ 安装出现了问题。您可以使用文件资源管理器在磁盘中搜索该文件,并查看它是否以某种方式移动。您可以尝试使用“程序和功能”控制面板修复安装。
  • holtavolt,我卸载了visual c++,然后安装了它,现在可以使用了,谢谢!

标签: c++ visual-c++


【解决方案1】:

对于那些为此苦苦挣扎的可怜人,经过一个小时的研究,我找到了适用于我的 Visual Studio Enterprise 2017 的解决方案:

首先,让我们看看你的库文件在哪里:

使用 Windows 资源管理器,转到安装 Visual Studio 的目录(默认:C:\Program Files (x86)\Microsoft Visual Studio)并搜索 msvcrtd.lib

我发现我的在这里:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\onecore\x86

快速修复(仅限一个项目):

  1. 右键单击您的项目,单击属性,导航到链接器,将该路径添加到 其他库目录

永久修复(适用于所有项目)

  1. 打开一个项目
  2. 导航至查看 > 属性管理器(可能在其他窗口下)
  3. 展开所有文件夹并多选所有“Microsoft.cpp.Win32.user”和“Microsoft.cpp.64.user

  1. 右键单击并转到属性
  2. 导航到 VC++ 目录

  3. 将路径添加到默认库目录

【讨论】:

  • +1,它有效。但请注意,对于 x86/x64 和调试/发布版本,需要添加的路径是不同的。
【解决方案2】:

转到您的项目属性,从左侧选择链接器。将此添加到“其他库目录”:

"(Your Visual Studio Path)\VC\lib"

例如:

C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

【讨论】:

    【解决方案3】:

    我在使用 VS2017 编译示例应用程序时遇到了这个问题 希望这会有所帮助

    【讨论】:

    【解决方案4】:

    在项目属性的某些属性对话框中,有一个复选框显示“从父级或项目默认值继承”。确保选中您的 IncludeLibrary 目录属性窗口的复选框,当然还有您的 Additional Dependencies 窗口。

    【讨论】:

    • 这应该是选择的答案恕我直言
    【解决方案5】:

    如果你使用VS2017,请阅读。或者直接忽略这个答案...可能对其他VS版本无效。

    不要相信任何告诉你添加 lib 路径的人。

    以下是建议:

    • [BEST] 您只需需要通过VS_installer 安装这些(我们大多数人只需要下面的x86/x64 版本)
      • VC++ 2017 版 version_numbers Spectre 的库 [(x86 和 x64) | (臂) | (ARM64)]
      • Visual C++ ATL for [(x86/x64) |臂 | ARM64] 与 Spectre 缓解
      • Visual C++ MFC for [x86/x64 |臂 | ARM64] 与 Spectre 缓解
    • [NAIVE] 或为每个解决方案禁用 Spectre 选项 (为什么我们很难全局禁用它)
    • [笑] 或者永远不要使用 VS2017

    这是 VisualStudioTeam 的错,微软有罪。

    为什么?

    您无法进行全局配置来禁用/QSpectre,以及IDK VS2017 何时以及为何在一天内启用它。那么最好的方法是安装Spectre?啊哈?

    【讨论】:

    • Visual Studio 团队有何过错?
    • @ChrisCatignani Visual Studio 默认应该禁用/QSpectre,但它们不会。他们应该提供一个全局设置来选择启用或禁用,但他们没有。解决它的最佳方法是安装 Spectre 组件,否则您需要为每个解决方案添加 lib 路径!!!而你对我投反对票只会让事情变得更糟。
    • 我没有给你投反对票...仅供参考.../Qspectre 默认关闭。 docs.microsoft.com/en-us/cpp/build/reference/…
    • 我知道它默认是关闭的。但实际上像我这样的人已启用,并且知道为什么会这样。我无法禁用它,所以只需安装它。
    【解决方案6】:

    对于 VS 2019,Spectre Mitigation 默认启用。 所以解决这个问题的正确方法是为 Spectre 安装 VC++ Libs。

    但是,为了快速解决问题,您可以禁用 Spectre Mitigation

    Project Properties -> C/C++ -> Code Generation -> Spectre Mitigation -> Disabled

    https://devblogs.microsoft.com/cppblog/spectre-mitigations-in-msvc/

    【讨论】:

      【解决方案7】:

      我遇到了这个问题。该文件存在于我的机器上,它位于搜索路径中。我被难住了,因为错误结果真的没有帮助。在我的例子中,我打开了 Spectre 缓解,但没有下载 Spectre 的运行时库。一旦我完成下载,世界就一切正常。我还必须在我的 CI 构建服务器上安装它,因为这些库默认情况下没有与 VS 一起安装。

      【讨论】:

      【解决方案8】:

      我已经解决了这个问题,你需要安装所有的幽灵库。 Vistual Studio 安装程序->修改->组件->任何幽灵库。 此解决方案可适用于任何项目。

      【讨论】:

      • 这对我有用,尽管我从未将其配置为使用任何幽灵缓解措施。
      【解决方案9】:

      对我来说,安装 (Windows Driver Kit) 后会出现此问题:https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

      卸载它可以解决问题。只是在这里发布作为寻找解决方案的人的相关问题:After installing WDK VC++ is broken

      【讨论】:

        【解决方案10】:

        场景:

        1. Windows 10Visual Studio 2017(全新安装)。

        2. 'C' 项目(链接:致命错误 LNK1104:无法打开文件 'MSVCRTD.lib')。 p>

        解决:

        1. 运行“Visual Studio 安装程序”。

        2. 点击“修改”按钮。

        3. 选择“使用 C++ 进行桌面开发”。

        4. 从“安装详情”(通常在右侧边栏)中选择:

          4.1。 VC++ 2015.3 v14.00(v140) 桌面工具集

          • 4.1 中的“工具集”版本。只是举例。
        5. 点击“修改”按钮,应用更改。
        6. 右键单击“SomeProject”->“属性”-> '链接器' -> '常规' -> '其他库目录':$(VCToolsInstallDir)\lib\x86

          (!!!对于 x64 项目:“附加库目录”:$(VCToolsInstallDir)\lib\x64 !!!)

        【讨论】:

          【解决方案11】:

          还值得检查 MSVCRTD.lib 文件是否存在于 x64 的“C:\Program Files\Microsoft Visual Studio 10.0\VC\lib”和 C:\Program Files(x86)\Microsoft Visual Studio 10.0\ VC\lib 用于 32 位。有时 VS 可能没有正确安装,或者这些文件可能会被意外删除。

          【讨论】:

            【解决方案12】:

            我通过在主文件中添加#using <mscorlib.dll>解决了这个问题

            【讨论】:

              【解决方案13】:

              这表明 Visual Studio 无法找到包含 msvcrtd.liblib(库)目录。

              重要提示:lib 目录还包含编译过程中所需的链接器。

              因此,您需要做的就是覆盖库目录位置。您可以在环境变量的帮助下做到这一点。

              我向this StackOverflow Post 寻求帮助。根据发布的答案,环境变量LIB 指的是 Linker 库所在的路径。为什么这种方法更好?因为这将适用于所有项目,而不仅仅是特定项目。此外,您无需下载任何额外内容。它只是工作......

              按照以下步骤来实现:

              STEP-1:在搜索栏中搜索“msvcrtd.lib”。

              第 2 步:点击“打开文件位置”(在上下文菜单中可用)

              STEP-3:从地址栏中复制目录地址。

              STEP-4:在任务栏搜索“环境”,点击“编辑系统环境变量”。

              STEP-5:点击“环境变量...”按钮。

              第 6 步: 在“系统变量”部分下,单击“新建...”按钮。会弹出一个对话框。

              STEP-7:在对话框中输入以下内容:

              • 变量名:LIB
              • 变量值:[您在“STEP-3”中复制的目录]

              然后按“确定”

              现在,你们都完成了!

              【讨论】:

                【解决方案14】:

                上面的答案对我来说不太准确。我安装了 VS2010 Ultimate 并且有问题的文件不在我的 Visual Studio 10.0\VC 文件夹中。相反,我在 Visual Studio 9.0\VC 文件夹中找到了它。因此,如果任何人都是这种情况,请按照提示更改链接器,但改用 Visual Studio 9.0\VC 文件夹。它对我有用。

                【讨论】:

                  【解决方案15】:

                  对于 Visual Studio 2017 转到您的项目属性,从左侧选择链接器。将此添加到“其他库目录”:

                  C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\lib

                  【讨论】:

                    【解决方案16】:

                    我得到了一个稍微不同的错误

                    LNK1104 无法打开文件“MSVCURTD.lib”

                    注意它是 msvcUrtd(不是 msvcrtd),但在我的系统上找不到该文件。

                    通过设置以下选项解决了这个问题:

                    Project Properties
                     General
                      Character Set: Not Set
                      Common Language Runtime Support: Common Language Runtime Support (/clr)
                    

                    希望对您有所帮助。

                    【讨论】:

                      【解决方案17】:

                      在 VS2017(社区/企业/终极/专业)中:

                      在VS中的以下路径中添加包含所需“.lib”文件的文件夹的路径:

                      (右键单击)项目(在解决方案资源管理器中)->属性->配置属性->链接器->常规->其他库目录

                      如果有多个“.lib”文件使用';'要将它们分开,否则单击“附加库目录”对应的编辑框,然后单击下拉菜单中的“”,并以易于处理的方式将所有所需的“.lib”文件一一添加到新打开的窗口中。

                      【讨论】:

                        【解决方案18】:

                        我使用 Visual Studio 2017 遇到了这个问题。我尝试了这里建议的解决方案,明确添加了“MSVCRT.lib”文件所在位置的路径。但我觉得这可能不是正确的方法,因为在过去几周这对我的项目来说不是问题。

                        经过反复试验,我发现如果我在 Linker --> Input 部分留下一个空值或空白值,它会给我关于 LNK1104 的错误:无法打开文件 'MSVCRT.lib'。最终我发现我应该把这个值留在那里。

                        在 Visual Studio 项目上,右键单击解决方案资源管理器面板中的项目项(不是解决方案本身,它是最顶部的项),然后选择属性。从那里执行以下操作:

                        链接器 --> 输入 : %(AdditionalDependencies)

                        如果您像我一样遇到这种情况,这些附加信息可能会有所帮助。我发现我不应该在 Linker --> Input 部分放置任何非系统库路径。在我的项目中,我试图用外部 .lib 文件进行编译。以前我在这个输入部分有一个值,比如: $(ProjectDir)lib; %(AdditionalDependencies) 但这会导致其他问题。我发现了在 Visual Studio 2017 的 C/C++ 项目中放置用于引用外部 .lib 文件的路径的正确位置(目前看来)是:

                        VC++ 目录 --> 库目录 : $(ProjectDir)lib; $(库路径)

                        请注意,$(LibraryPath) 值将包含额外的值,例如从父母那里继承的值。我的文件夹项目包含一个名为“lib”的文件夹,这就是为什么我在分号之前有第一个值。

                        【讨论】:

                          【解决方案19】:

                          我已经包含了以下路径

                          C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86 和
                          C:\local\boost_1_64_0\lib64-msvc-14.1

                          项目属性->链接器->附加目录

                          Click here : Image shows linking of boost and MSVC2017

                          【讨论】:

                            【解决方案20】:

                            我刚刚遇到了这个错误,在我的情况下重建项目,而没有做任何其他事情对我有用。 这是我的情况 Visual Studio 崩溃了,我不得不重新安装,我的新安装路径与以前的不同。然后我有这个错误

                            错误显示库位于

                            D:\program\Microsoft Visual Studio\...

                            应该是的

                            D:\program files\Microsoft Visual Studio\...

                            正如我所说,我刚刚重建了它,它对我有用,如果你有一个多解决方案项目,你必须重建整个解决方案

                            【讨论】:

                              猜你喜欢
                              • 2011-06-23
                              • 2017-11-29
                              • 2014-11-13
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多