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

Posted

技术标签:

【中文标题】链接:致命错误 LNK1104:无法打开文件 \'ucrt.lib\'【英文标题】:LINK : fatal error LNK1104: cannot open file 'ucrt.lib'链接:致命错误 LNK1104:无法打开文件 'ucrt.lib' 【发布时间】:2017-11-29 12:51:15 【问题描述】:

目前我正在为 Simulink Real-Time 构建一个模型,并将 Microsoft Visual C++ Compilers Community 2015 作为我的 Simulink Real-Time 编译器。当我尝试构建我的模型时,它会出现以下错误:

### Linking ... 
    link.exe /nologo /dll /MANIFEST /OPT:NOREF /export:mexFunction /OUT:Test_Handler_sfun.mexw64 /map:"Test_Handler_sfun.map"      @Test_Handler_sfun.mol 
LINK : fatal error LNK1104: cannot open file 'ucrt.lib' 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\Bin\amd64\link.exe"' : return code '0x450' 
Stop.

以前我也遇到过这个错误,我相信这是由同样的问题引起的。我以一种非常不雅的方式解决了这个问题。

 C1083: Cannot open include file: 'stddef.h': No such file or directory 

我在谷歌上搜索了很多。我发现这是因为某些文件和/或库现在位于 Windows 10 SDK 安装文件夹 (C:\Program Files (x86)\Windows Kits\10) 中,并且该路径不包含在编译器中.当您在 Visual Studio 项目中工作时,有很多解决方案,但在使用 Matlab 和/或 Simulink 时却没有。

如何确保编译器可以找到并打开库和文件?

【问题讨论】:

【参考方案1】:

由于您在“不雅的问题”中解决了丢失的头文件,我将为您当前的问题提出另一个不雅的解决方案。我遇到了同样的问题,在编译选项中添加相应的库路径(-L... 有帮助:

mex -output mybinary 
    -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt"
    -L"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64"

确保将其调整为您的 Windows Kit 的确切版本(在我的情况下为 10.0.10240.0)和目标 (x64)。

【讨论】:

【参考方案2】:

我的答案是针对 Windows 8.1 和 VS2017。 对我来说,使用 Visual Studio 安装程序(在所有程序中)并通过添加 Windows 8.1 SDK 和 UCRT SDK 修改 使用 C++ 进行桌面开发。图书馆被自动拾取。

参考截图:

【讨论】:

以上是关于链接:致命错误 LNK1104:无法打开文件 'ucrt.lib'的主要内容,如果未能解决你的问题,请参考以下文章

链接:致命错误 LNK1104:无法打开文件“SDL.lib”

如何摆脱VS 13中的错误“链接:致命错误LNK1104:无法打开文件'LIBC.lib'”?

visual c++,链接:致命错误 LNK1104:无法打开文件

链接:致命错误 LNK1104:无法打开文件“opencv_calib3d245d.lib”(OpenCV 2.4.9)

visual C++ 6.0 问题:链接:致命错误LNK1104:无法打开文件“调试/ d.exe“ 执行link.exe时出错。

链接:致命错误 LNK1104:无法打开文件 'C:\Users\hp\.pyxbld\lib.win32-2.7\gensim\models\word2vec_inner.pyd'