Visual Studio 2019链接webrtc.lib出现LNK2019错误该如何解决?
WebRTC静态库VS链接LNK2019错误排查方案
1. 对齐运行时库配置
WebRTC静态编译(is_component_build=false)时,默认使用静态运行时库:
- Debug版本对应
/MTd(多线程调试) - Release版本对应
/MT(多线程)
请检查VS项目配置:C/C++ > 代码生成 > 运行库,必须和WebRTC编译时的运行时库完全一致,禁止使用/MDd//MD动态运行时库,否则会出现大量符号冲突类的LNK2019错误。
2. 补全必要预处理器定义
请在VS项目C/C++ > 预处理器 > 预处理器定义中添加以下宏:
WEBRTC_WIN:标记Windows平台编译WebRTCNOMINMAX:避免Windows系统定义的min/max宏和WebRTC内部实现冲突WIN32_LEAN_AND_MEAN:裁剪Windows头文件引入的冗余内容,减少符号冲突WEBRTC_USE_H264:你开启了proprietary_codecs=true编译WebRTC,必须添加该宏对齐编码支持配置
3. 补全缺失的系统依赖库
你当前添加的系统库仍有遗漏,请在链接器 > 输入 > 附加依赖项中补充以下库:crypt32.lib;iphlpapi.lib;psapi.lib;userenv.lib;d3d11.lib;dxgi.lib
4. 校验架构与路径配置
- 确认VS项目生成平台为
x64,和你编译WebRTC时的target_cpu="x64"参数对齐,禁止使用x86平台链接x64的webrtc.lib - 确认VS项目当前使用的是Debug配置,和你编译的Debug版本WebRTC对齐,禁止跨配置链接
- 确认
C:\Users\User\Desktop\webrtc-checkout\src\out\DebugX64\obj路径下确实存在webrtc.lib文件,若文件位置有变动请修正附加库目录路径
5. 对齐字符集配置
请在VS项目常规 > 字符集中选择使用 Unicode 字符集,禁止使用多字节字符集,和WebRTC默认字符集配置对齐。
如果以上步骤排查后仍有错误,可以根据单个未定义符号的类型定向补充缺失的依赖库,或者重新检查WebRTC编译参数与VS项目参数的一致性。
内容的提问来源于stack exchange,提问作者dvik
相关产品推荐
相关产品推荐

