提问人:Dalex 提问时间:3/29/2021 更新时间:4/1/2021 访问量:440
MSVC 手动链接 stdlib
MSVC Manually Linking 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:
我已经尝试使用不同的包含目录以及不同的 Windows SDK 版本, 但似乎没有一个能解决我的问题。
我很感激任何形式的帮助,谢谢。
答:
0赞
Dalex
4/1/2021
#1
我决定按照@user123的建议,自己实现 stdlib 中所需的功能,以解决此问题并节省大量时间。
下一个:将 stdin 流式传输到套接字
评论