提问人:Shane Bishop 提问时间:3/23/2022 最后编辑:Shane Bishop 更新时间:3/23/2022 访问量:176
tdh.h 中定义的函数的未解决的外部符号错误
Unresolved external symbol errors for functions defined in tdh.h
问:
当我编译我的 C Windows 程序时,我收到以下链接器错误:
(Link target) -> libossec.lib(read_win_trace_log.obj) : error LNK2001: unresolved external symbol TdhFormatProperty [C:\path\to\project.vcxproj] libossec.lib(read_win_trace_log.obj) : error LNK2001: unresolved external symbol TdhGetPropertySize [C:\path\to\project.vcxproj] libossec.lib(read_win_trace_log.obj) : error LNK2001: unresolved external symbol TdhGetEventInformation [C:\path\to\project.vcxproj] libossec.lib(read_win_trace_log.obj) : error LNK2001: unresolved external symbol TdhGetEventMapInformation [C:\path\to\project.vcxproj] libossec.lib(read_win_trace_log.obj) : error LNK2001: unresolved external symbol TdhGetProperty [C:\path\to\project.vcxproj] C:\Users\Administrator\src\lich\lichsrc\x64\Release\lich.exe : fatal error LNK1120: 5 unresolved externals [C:\path\to\project.vcxproj]
如有必要,我可以包含我的源代码,但它非常大(文件超过 600 行长)。
我包括在我的 .我检查了一下,系统头文件中每个函数都有函数原型。因此,这些链接器错误不应该是由于任何隐式函数原型造成的。tdh.h
read_win_trace_log.c
tdh.h
我查看了源代码,它已经将所有内容包装在 中,因此该代码应该可以从我的 C 代码中调用。tdh.h
extern "C"
我使用 Visual Studio 编译器进行编译,但从命令行使用手动维护的文件进行编译。.vcxproj
我是否可能缺少一个或我需要链接才能成功构建?.lib
.dll
答:
1赞
Jabberwocky
3/23/2022
#1
如此处所述,为了使用标头中的函数,您需要链接到库。tdh.h
tdh.lib
使用 Project>Properties 命令并添加,如下所示:tdh.lib
评论
TdhFormatProperty
tdh.h