【发布时间】:2021-06-02 16:24:35
【问题描述】:
我正在尝试使用 cl 命令行工具在 Windows 上构建一个包含 _aligned_alloc、_aligned_realloc 和 _aligned_free 的简单 DLL。我的源文件是一个 .c 文件,包括
cl /LD CustomAllocators.c /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
然后链接失败,显示:
CustomAllocators.obj : error LNK2019: unresolved external symbol _aligned_alloc referenced in function Allocate
CustomAllocators.dll : fatal error LNK1120: 1 unresolved externals
所有这些 /NODEFAULTLIB 开关都是大量谷歌搜索的结果,似乎他们应该这样做,除非这些分配函数不在任何这些标准库中......但在那种情况下,我不知道他们可能在哪里。
谁能告诉我我需要包含什么库来解析这些符号,或者我可能做错了什么?
【问题讨论】:
-
检查docs.microsoft.com/en-us/cpp/c-runtime-library/reference/…。那些 /NODEFAULTLIB 没用。
标签: visual-c++ linker malloc cl