内核模式驱动程序在VS 2015中无法链接

时间:2018-02-09 13:42:52

标签: c++ visual-studio-2015 kmdf

我有一个使用平台工具集WindowsKernelModeDirver8.1的KMD。 驱动程序编译链接,使用VS 2013运行没有任何问题。 我正在运行Windows 10。

当我尝试使用VS 2015编译它时,我收到以下链接错误。

1> LINK:错误LNK2001:未解析的外部符号GsDriverEntry 1> terVertaPci.obj:错误LNK2019:函数terVertaPciDevCtl中引用的未解析的外部符号__security_check_cookie 1> ntoskrnl.lib(gshandler.obj):错误LNK2001:未解析的外部符号__security_check_cookie 1> terVertaPci.obj:错误LNK2019:函数terVertaPciDevCtl中引用的未解析的外部符号__security_cookie

我无法在c ++代码的任何位置找到对未解析符号的引用。 似乎VS 2015在不同的库中链接而不是VS 2013 我无法找到有关差异的信息。我的组织有 宣布VS 2015为新标准,这就是我遇到这个问题的原因。

我是处理KMD代码的新手。任何帮助将不胜感激。

当我第一次在VS 2015中打开解决方案时,我被告知VC ++编译器和库需要升级,但自动升级的结果是:

Configuration 'Win7 Debug|x64': no upgrade required. Platform Toolset is 'WindowsKernelModeDriver8.1'.
Configuration 'Win7 Release|x64': no upgrade required. Platform Toolset is 'WindowsKernelModeDriver8.1'.
TargetFrameworkVersion = v4.5 (was v4.5)

重定向结束:1完成,0失败,0跳过

1 个答案:

答案 0 :(得分:1)

Visual Studio 2015仅适用于Windows 10版本1703的WDK。                     它甚至无法与WindowsKernelModeDriver 8.1一起使用                     虽然8.1是PlatformToolset中的一个选项。

VS 2015升级工具说“不需要升级"

安装WDK for Windows 10,版本1703并设置PlatformToolset 因为WindowsKernelModeDriver 10.0解决了这个问题。