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

fatal error LNK1104: cannot open file 'MSVCRT.lib'

本文关键字:MSVCRT lib 文件 LNK1104 致命错误      更新时间:2023-10-16

我知道有很多这样的问题,但是没有一个答案能帮助我解决我的问题。什么问题?那么,当链接时,在编译我的项目后,我收到这个:

致命错误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的情况下解决这个问题的任何想法(也,我不知道这是否会起作用)?

经过2年的努力,我终于找到了适合自己的解决方案。

在CodeBlocks中,在Project>Build Options>Compiler Flags下,删除多线程DLL运行库[/MD]并重新构建

我只是删除了。sdf和。suo文件。

我刚刚使用Visual Studio 2017遇到了这个问题。经过反复试验,我发现,如果我在链接器->输入部分中放置一个空值或空白值,它会给我关于LNK1104的错误:无法打开文件'MSVCRT.lib'。最后我发现我应该把这个值留在这里。

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

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

如果你遇到和我一样的情况,这些额外的信息可能会有帮助。我试图用外部。lib文件编译。以前我在这个输入节中有一个值,如:$(ProjectDir)lib;%(AdditionalDependencies)但这会导致其他问题,最终我将该值移动到:

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

注意$(LibraryPath)值将包含额外的值,例如继承自父值。我的文件夹项目包含一个名为"lib"的文件夹,这就是为什么我在分号之前使用了第一个值。

遵循此->将Microsoft Visual Toolkit 2003与Code::Blocks IDE集成

From there

如果您正在编译的项目抱怨无法找到"msvcrt。. lib",然后下载。net 1.1 SDK并添加到目录->链接器选项卡:

C:Program FilesMicrosoft Visual Studio .NET 2003Vc7lib