2017-05-06 55 views
0

下午好,所以我有一个关于在我的内核模式驱动程序中包含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”包含头部和外部函数,但没有运气,我还将所有库路径添加到链接器设置中,以及哪些不是。任何想法都欢迎!

+0

为研究这种错误您需要添加链接器选项[/VERBOSE](https://msdn.microsoft.com/en-us/library/wdsk6as6.aspx)或如何最小'/ VERBOSE:LIB'和视图在输出中 - 是链接器使用的'aux_klib.lib'。 * AuxKlibInitialize *存在于x64版本* aux_klib.lib * – RbMm

+0

我添加了/ VERBOSE:LIB到我的命令行选项,它仍然是相同的链接器错误没有添加输出,我也打开了IDA中的aux_klib.lib x64并查看了导出他们似乎都在那里。 – Opedn33

+1

这个选项当然不会修复错误,它用于诊断。 '没有添加输出' - 你的意思是 - 没有任何消息是通过链接打印?!不信。你使用msvc进行构建?使用'/ VERBOSE'并查找链接器输出 - 他是否搜索* aux_klib.lib *可能是您使用的*/nodefaultlib *选项。在这种情况下'#pragma comment(lib,“aux_klib.lib”)'将不起作用。你需要直接添加* aux_klib.lib *到链接器输入 – RbMm

回答

0

我有链接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 LibrariesNo和使用#pragma comment(lib, "aux_klib.lib")