Windows10驱动编译报LNK2019无法解析WdmlibIoCreateDeviceSecure如何解决
问题原因
这个LNK2019错误是因为IoCreateDeviceSecure是WDK提供的包装函数,定义在wdmsec.h头文件中,其实现封装在静态库wdmsec.lib里,你当前的项目配置没有将这个库加入链接依赖列表,导致链接器无法找到函数实现。
解决步骤
- 如果你使用Visual Studio + WDK的开发环境:
- 右键点击驱动项目,选择「属性」
- 依次展开「配置属性 -> 链接器 -> 输入」
- 在「附加依赖项」中添加
wdmsec.lib,注意和已有依赖项用分号分隔 - 确认配置的平台(x86/x64/ARM64)和目标Windows版本匹配后重新编译即可
- 如果你使用旧版WDK的Sources文件构建:
在Sources文件中添加一行:TARGETLIBS=$(DDK_LIB_PATH)\wdmsec.lib - 如果你使用CMake构建驱动:
在CMakeLists.txt中添加链接依赖:target_link_libraries(你的驱动目标名 PRIVATE wdmsec.lib)
额外注意事项
- 确认你的项目包含了正确的头文件
#include <wdmsec.h>,你当前的代码已经包含这行,无需修改 - 你当前代码中的设备路径字符串存在转义错误,
L"\Device\cwk_3948d33e"应修改为L"\\Device\\cwk_3948d33e",符号链接路径L"\??\slbkcdo_3948d33e"应修改为L"\\??\\slbkcdo_3948d33e",否则运行时会出现路径解析错误
内容的提问来源于stack exchange,提问作者ZSY-ARCH
相关产品推荐
相关产品推荐

