Unresolved External包含aux_klib内核库
问题描述:
下午好,所以我有一个关于在我的内核模式驱动程序中包含aux_klib库的问题,出于某种原因,我得到的所有aux_klib函数都有相同的错误。Unresolved External包含aux_klib内核库
Error 1 error LNK2019: unresolved external symbol AuxKlibInitialize referenced in function "unsigned char __cdecl Main(struct MainInfo*)" ([email protected]@[email protected]@@Z)
我做的#pragma评论(LIB, “aux_klib.lib”)在我的项目,没有运气,也驾驶员在CPP编码。我也将lib添加到我的项目中,并确保它是x64,因为这是项目构建体系结构。我也尝试过通过extern“C”包含头部和外部函数,但没有运气,我还将所有库路径添加到链接器设置中,以及哪些不是。任何想法都欢迎!
答
我有链接Aux_klib.lib
相同的问题,所以我设置/VERBOSE:Lib
。
右键单击项目 - >属性 - >链接器 - >常规 - >显示 进展
据我了解,For Libraries Searched /VERBOSE:Lib
显示库搜索和我注意到,Aux_klib.lib
不在那个搜索。 而且我注意到输出中有另外一件东西,/NODEFAULTLIB
也在命令行中传递。
由于@RbMm说,
是他寻找aux_klib.lib可能是你使用/ NODEFAULTLIB选项。 在这种情况下#pragma评论(lib,“aux_klib.lib”)将没有 的效果。
因此,我改变Ignore All Default Libraries
右键单击项目 - >属性 - >链接器 - >输入 - >忽略 所有默认库
到No
和一切联系和编译完美。
TL; DR
总之,尽量Linker
下改变Ignore All Default Libraries
到No
和使用#pragma comment(lib, "aux_klib.lib")
。
为研究这种错误您需要添加链接器选项[/VERBOSE](https://msdn.microsoft.com/en-us/library/wdsk6as6.aspx)或如何最小'/ VERBOSE:LIB'和视图在输出中 - 是链接器使用的'aux_klib.lib'。 * AuxKlibInitialize *存在于x64版本* aux_klib.lib * – RbMm
我添加了/ VERBOSE:LIB到我的命令行选项,它仍然是相同的链接器错误没有添加输出,我也打开了IDA中的aux_klib.lib x64并查看了导出他们似乎都在那里。 – Opedn33
这个选项当然不会修复错误,它用于诊断。 '没有添加输出' - 你的意思是 - 没有任何消息是通过链接打印?!不信。你使用msvc进行构建?使用'/ VERBOSE'并查找链接器输出 - 他是否搜索* aux_klib.lib *可能是您使用的*/nodefaultlib *选项。在这种情况下'#pragma comment(lib,“aux_klib.lib”)'将不起作用。你需要直接添加* aux_klib.lib *到链接器输入 – RbMm