Hololens项目升级后LNK1104报错 排查comsuppwd.lib链接来源
LNK1104 comsuppwd.lib 引用来源定位方案
快速排查步骤
- 扫描隐式引入语句:全局搜索整个代码库所有
.h、.cpp文件中的comsuppw、comsuppwd关键词,同时搜索_com_ptr_t、_bstr_t、_variant_t等COM封装类的引用,以及#pragma comment(lib)相关语句。VS内置的comdef.h头文件会在项目开启COM支持、Debug模式、定义_ATL_DLL宏的场景下,自动通过隐式编译指令引入comsuppwd.lib,无需开发者手动写引入语句。 - 检查项目配置差异:对比桌面版和Hololens UWP版的项目配置,重点检查以下选项:
- C/C++ → 代码生成 → 运行库:确认Hololens配置没有选用桌面专属的运行时版本
- 常规 → ATL/MFC 使用:Hololens UWP 配置下必须将ATL、MFC支持设为
不使用 - C/C++ → 语言 → 启用C++异常:不要选择
带SEH支持的异常(/EHa),该选项会触发COM相关依赖的自动引入
- 排查第三方库携带的依赖:对项目引入的所有预编译第三方静态库,执行
dumpbin /DIRECTIVES 目标库名称.lib命令,扫描输出内容中的comsuppwd.lib字符串。如果存在匹配,说明该第三方库编译时就携带了这个链接依赖,需要替换为适配UWP的版本。 - 强制忽略反查引用位置:临时在Hololens配置的 链接器 → 输入 → 忽略特定默认库 中添加
comsuppwd.lib,重新触发构建。此时报错会变为具体的符号未解析错误,错误信息会直接标注是哪个.obj目标文件引用了对应符号,就能反向定位到对应的源码文件。
内容的提问来源于stack exchange,提问作者Runt8
相关产品推荐
相关产品推荐

