我是新手C ++开发人员。当我尝试调试Microsoft Visual C ++ 2010 Express中的每个项目时,我输入错误消息指示“LINK:致命错误LNK1104:无法打开文件'MSVCRTD.lib'”。我搜索了Stack overflow和Google的任何可能的分辨率,但我找不到准确而准确的答案。我所理解的是“msvcrtd.lib”文件应位于“\ Microsoft Visual Studio 10.0 \ VC \ lib”中,但在我的情况下该文件不存在。我该怎么办?
答案 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
快速修复(仅适用于一个项目):
永久修复(对于所有项目)
答案 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)
答案 6 :(得分:2)
场景:
Windows 10 和 Visual Studio 2017 (FRESH安装)。
“ C”项目(链接:致命的错误LNK1104 :无法打开文件“ MSVCRTD.lib ”)。
解决:
运行“ Visual Studio安装程序”。
单击“修改”按钮。
选择'使用C ++进行桌面开发'。
从“安装详细信息”(通常在右侧栏中)中选择:
4.1。 用于桌面的VC ++ 2015.3 v14.00(v140)工具集。
右键单击'SomeProject'->'Properties'-> '链接器'-> '常规'-> '其他库目录': $(VCToolsInstallDir) \ lib \ x86
(对于 x64 项目的!!!:'其他库目录':$(VCToolsInstallDir)\ lib \ x64 !!!)
答案 7 :(得分:2)
如果您使用VS2017,请阅读它。或忽略此答案...对于其他VS版本可能无效。
不要相信任何告诉您添加库路径的人。
这里的建议:
VS_installer
安装它们(我们大多数人只需要下面的x86/x64
版本)
Spectre
选项
(为什么我们很难全局禁用它)这是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:单击“打开文件位置”(在上下文菜单中可用)
步骤3::从地址栏中复制目录的地址。
STEP-4::在任务栏中搜索“环境”,然后单击“编辑系统环境变量”。
第5步:点击“环境变量...”按钮。
STEP-6 :在“系统变量”部分下,单击“新建...”按钮。将会弹出一个对话框。
STEP-7::在对话框中,输入以下内容:
然后按“确定”
答案 12 :(得分:0)
对于VS 2019,默认情况下启用了Spectre Mitigation。 因此,解决此问题的正确方法是为Spectre安装VC ++库。
但是,要快速解决此问题,您可以禁用“幽灵缓解”功能
Project Properties -> C/C++ -> Code Generation -> Spectre Mitigation -> Disabled
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
收件人
项目属性->链接器->其他目录
答案 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文件夹。它对我有用。