致命错误 LNK1104: 无法打开文件 'MSVCRT.lib'

3
我知道有很多类似的问题,但是没有一个答案能够帮助我解决我的问题。我的问题是什么呢?当链接时,在编译我的项目后,我收到以下错误信息:
致命错误 LNK1104: 无法打开文件“MSVCRT.lib”
我正在使用Windows 8 64位下的CodeBlocks。使用Visual C++ 2003 Toolkit编译器进行编译,我已经安装在C:\Program Files (x86)\Visual C++ 2003 Toolkit,并且使用了许多来自Windows API的函数,它们也已经安装在C:\Program Files (x86)\Windows Kits中。
在互联网上搜索,我发现一些解决方案,如在我的项目设置中链接这个库(MSVCRT.lib),但我绝对没有那个文件。这是一个项目(我在其中收到此错误)我大约15天前正在工作,现在我想恢复它的开发。我编译和链接了这个项目很多次,我从来没有得到过这个链接器错误,我不知道为什么现在我就是不能链接它。
一些解决方案说我需要安装VS.NET,这样MSVCRT.lib文件就会在那里,但我从来没有安装过它,我还是能够编译和链接我的项目!
有什么办法可以解决这个问题,而不需要安装VS.NET(而且,我不知道这是否会起作用)?
4个回答

4

经过两年的时间,我终于找到了解决方案。

在CodeBlocks中,在项目>构建选项>编译器标志下,删除多线程DLL运行时库[/MD]并重新构建。


类似于Visual Studio,请确保从“.exe”切换到“.dll”。 - J'e

1
我刚在使用Visual Studio 2017时遇到了这个问题。经过试错,我发现如果我在链接器-->输入部分中放入空值或空白值,它会给我一个关于LNK1104错误的提示:“无法打开文件'MSVCRT.lib'”。最终我想出了应该将这个值保留在那里。
在Visual Studio项目上,右键单击解决方案资源管理器面板中的项目项(不是最顶层的解决方案本身),然后选择属性。从那里进行以下操作:
链接器-->输入:%(AdditionalDependencies)
如果您像我一样陷入了同样的困境,这些额外的信息可能会有所帮助。我试图编译外部.lib文件。之前我在这个输入部分中有一个值,如:$(ProjectDir)lib; %(AdditionalDependencies)但这导致其他问题,最终我将该值移动到:
VC++目录-->库目录:$(ProjectDir)lib; $(LibraryPath)
请注意,$(LibraryPath) 的值将包含从父级继承的额外值。我的文件夹项目包含一个名为“lib”的文件夹,这就是为什么我在分号之前有第一个值的原因。

1

对我起作用的是删除 .sdf 和 .suo 文件。


0

请按照以下步骤 -> 将Microsoft Visual Toolkit 2003与Code::Blocks IDE集成

从那里开始

如果您正在编译的项目抱怨找不到"msvcrt.lib",则请下载.NET 1.1 SDK并添加到Directories->Linker选项卡的末尾:

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib


谢谢你的回答。给我一些时间来安装和配置,然后我会告诉你它是否有效 :-). - cdonts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接