链接:致命错误LNK1104:无法打开文件'MSVCRTD.lib'

时间:2011-06-03 14:05:54

标签: c++ visual-c++

我是新手C ++开发人员。当我尝试调试Microsoft Visual C ++ 2010 Express中的每个项目时,我输入错误消息指示“LINK:致命错误LNK1104:无法打开文件'MSVCRTD.lib'”。我搜索了Stack overflow和Google的任何可能的分辨率,但我找不到准确而准确的答案。我所理解的是“msvcrtd.lib”文件应位于“\ Microsoft Visual Studio 10.0 \ VC \ lib”中,但在我的情况下该文件不存在。我该怎么办?

20 个答案:

答案 0 :(得分:22)

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

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

例如:

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

答案 1 :(得分:17)

对于在那里苦苦挣扎的可怜人,经过一个小时的研究,我找到了适用于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. 右键单击您的项目,单击属性,导航到“链接器”,然后将该路径添加到其他库目录 enter image description here

永久修复(对于所有项目)

  1. 打开一个项目
  2. 导航至“视图”>“属性管理器”(它可能位于其他Windows 下)
  3. 展开所有文件夹,然后多选所有“ Microsoft.cpp.Win32.user ”和“ Microsoft.cpp.64.user

enter image description here

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

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

答案 2 :(得分:12)

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

答案 3 :(得分:4)

我遇到了这个问题。该文件存在于我的机器上,位于搜索路径中。我很沮丧,因为错误结果确实无济于事。就我而言,我已启用Spectre缓解功能,但未下载Spectre的运行时库。一旦完成下载,一切就对了。我还必须在CI构建服务器上安装此库,因为默认情况下这些库未随VS一起安装。

答案 4 :(得分:2)

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

答案 5 :(得分:2)

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

enter image description here

答案 6 :(得分:2)

场景:

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

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

  3. p>

解决:

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

  2. 单击“修改”按钮。

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

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

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

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

    (对于 x64 项目的!!!:'其他库目录':$(VCToolsInstallDir)\ lib \ x64 !!!)

答案 7 :(得分:2)

如果您使用VS2017,请阅读它。或忽略此答案...对于其他VS版本可能无效。

不要相信任何告诉您添加库路径的人。

这里的建议:

  • [BEST]您只是需要通过VS_installer安装它们(我们大多数人只需要下面的x86/x64版本)
    • VC ++ 2017版本version_numbers幽灵[(x86和x64)| (ARM)| (ARM64)]
    • [(x86 / x64)|的Visual C ++ ATL | ARM | ARM64]和缓解幽灵问题
    • 适用于[x86 / x64 | Visual C ++ MFC] ARM | ARM64]和缓解幽灵问题
  • [NAIVE]或为每个解决方案禁用Spectre选项 (为什么我们很难全局禁用它)
  • [LAUGH]或从不使用VS2017

这是VisualStudioTeam的错,Microsoft对此有罪。

为什么?

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

答案 8 :(得分:2)

我已经解决了这个问题,您需要安装所有Spectre库。 Vistual Studio安装程序->修改->组件->任何幽灵库。 该解决方案可以适应任何项目。

答案 9 :(得分:2)

对我来说,此问题是在安装(Windows驱动程序工具包)之后发生的:https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

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

答案 10 :(得分:0)

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

错误显示库位于

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

应该是

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

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

答案 11 :(得分:0)

这表明Visual Studio无法找到包含lib的{​​{1}}(库)目录。

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

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

我向this StackOverflow Post寻求帮助。根据发布的答案,环境变量lib指的是链接器库所在的路径。为什么这种方法更好?因为这将适用于所有项目,而不只是特定的项目。另外,您无需下载任何其他内容。就是这样...

请按照以下步骤操作:

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

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

enter image description here

步骤3::从地址栏中复制目录的地址。

enter image description here

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

enter image description here

第5步:点击“环境变量...”按钮。

enter image description here

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

enter image description here

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

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

然后按“确定”

enter image description here

现在,您已经完成了!

答案 12 :(得分:0)

对于VS 2019,默认情况下启用了Spectre Mitigation。 因此,解决此问题的正确方法是为Spectre安装VC ++库。

但是,要快速解决此问题,您可以禁用“幽灵缓解”功能

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

enter image description here

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

答案 13 :(得分:0)

我已包含以下路径

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

答案 14 :(得分:0)

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

经过反复试验,我发现如果在链接器->输入部分中留空或空白值,则会出现有关LNK1104的错误:无法打开文件'MSVCRT.lib'。最终,我发现应该将此值保留在那里。

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

链接器->输入%(AdditionalDependencies)

如果您以与我相同的方式遇到这种情况,此附加信息可能会有所帮助。我发现我不应该在链接器->输入部分中放置任何非系统库路径。在我的项目中,我尝试使用外部.lib文件进行编译。以前,我在此输入部分有一个值,例如: $(ProjectDir)lib; %(AdditionalDependencies),但这会导致其他问题。我发现在Visual Studio 2017的C / C ++项目中放置用于引用外部.lib文件的路径的正确位置(到目前为止):

VC ++目录->库目录 $(ProjectDir)lib; $(LibraryPath)

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

答案 15 :(得分:0)

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

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

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

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

答案 16 :(得分:0)

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

  

LNK1104无法打开文件'MSVCURTD.lib'

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

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

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

希望有帮助。

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

我通过在主文件

中添加<h3 class="question" <?php if ($error['field1'] === 1) {echo('id="red"');}?>Fill in field 1</h3> <p class="error"><php echo $errormessage['field1'];?></p> <input name="field1" type="text" value="<?php echo $formfields['field1'];?>" maxlength="128" <?php if ($error['field1'] === 1){echo ('id="error_field"');?>> 解决了这个问题

答案 19 :(得分:0)

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