MSVC 手动链接 stdlib

MSVC Manually Linking stdlib

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

C:\edk2\MdePkg\Include\X64
C:\edk2\MdePkg\Include
C:\Program Files (x86)\Microsoft Visual Studio19\Preview\VC\Tools\MSVC.28.29812\include
C:\Program Files (x86)\Microsoft Visual Studio19\Preview\VC\Tools\MSVC.28.29812\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio19\Preview\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\Include.0.19041.0\ucrt
C:\Program Files (x86)\Windows Kits\Include.0.19041.0\um
C:\Program Files (x86)\Windows Kits\Include.0.19041.0\shared
C:\Program Files (x86)\Windows Kits\Include.0.19041.0\winrt
C:\Program Files (x86)\Windows Kits\Include.0.19041.0\cppwinrt
C:\Program Files (x86)\Windows Kits\NETFXSDK.8\Include\um

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

我是这样做的:

1.) 经过快速 Google 搜索后我发现,我必须 link 我的申请反对 libucrt.lib,这然后我尝试通过执行简单搜索来定位我的 Windows 10 SDK 内部,结果如下:

C:\Program Files (x86)\Windows Kits\Lib.0.19041.0\ucrt\x64

因此,我在 Visual Studio 2019 年将此目录添加到我的图书馆目录中。 别忘了,我还添加了 libucrt.lib

我的问题是,在编译我的项目后,我仍然从 linker 那里得到一个错误:

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

非常感谢任何形式的帮助,谢谢。

我决定按照@user123 的建议,自己从 stdlib 实现我需要的功能,以解决这个问题并节省我很多时间。