MSVC 手动链接 stdlib

问题描述

目前我正在尝试在我的 EDK2 项目中使用 C 标准库。 由于我的 Visual Studio 2019 没有自动添加必要的包含目录, 我手动将以下文件添加到我的包含目录中:

C:\edk2\MdePkg\Include\X64
C:\edk2\MdePkg\Include
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.28.29812\include
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.28.29812\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\cppwinrt
C:\Program Files (x86)\Windows Kits\NETFxsdk\4.8\Include\um

由于这修复了我丢失的 #include 指令,我唯一剩下的就是手动 将缺少的库添加链接器参数中。

我是这样做的:

1.) 在 Google 快速搜索后,我发现我必须将我的应用程序链接libucrt.lib,然后我尝试通过执行一个简单的操作来定位我的 Windows 10 SDK 内部搜索,结果如下:

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64

因此,我将此目录添加到 Visual Studio 2019 中的库目录中。 不要忘记,我还添加libucrt.lib

Linker Libraries

我的问题是,在编译我的项目后,我仍然收到来自链接器的错误

Linker error

我已经尝试过使用不同的包含目录以及不同的 Windows SDK 版本, 但似乎没有一个解决我的问题。

我很感激任何形式的帮助,谢谢。

解决方法

我决定自己从 stdlib 中实现我需要的功能,正如@user123 所建议的,为了解决这个问题并节省我很多时间。