Visual Studio 2017自建WebRTC中peerconnection_client程序报LNK2019 无法解析的外部符号错误

本文主要是介绍Visual Studio 2017自建WebRTC中peerconnection_client程序报LNK2019 无法解析的外部符号错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇我们讲了TSINGSEE青犀视频研发团队正在对webrtc进行研究,尝试了在Visual Studio 2017自建WebRTC中peerconnection_client程序。上文我们处理了几个报错问题,有兴趣可以看一下。

解决完前文的问题之后,我们再次编译peerconnection_client程序,会出现各种“LNK2019 无法解析的外部符号 public:_thiscall xxxxxx(xxxxxx), 该符号在函数 protected:void _thiscall xxxxxx(xxxxxx)中被引用”;导致程序无法继续编译。

86.png

分析问题

使用编译的window WebRTC的库,引用了头文件,但是没有引用第三方库文件,所以报“无法解析外部符号”错误。

解决问题

1、通常配置一下项目属性就好了。在项目属性的库文件目录里面添加相应库文件所在的目录(连接器->输入->附加依赖项里加入对应的库文件即可);但是对于WebRTC引用的库文件比较多,所以打开编译好的WebRTC输出文件目录,并找到peerconnection_client.ninja文件,打开改文件,如下图,找到所有(.lib文件),添加到vs库文件即可。

87.png

(文字过长,只能截取一小部分)

2、还有一种方法,即在vs2017中利用预处理命令#pragma comment(lib, “xxx.lib”);把xxx替换成想要加载的lib文件。关于这条命令的使用其实不是最终目的,因为对于WebRTC引用的库文件比较多,所以写起来有点繁琐,不过该方法是第一种解决方案的代码话版本,大家也可以尝试一下。

88.png

以上介绍的编译问题就到这里了,当然TSINGSE青犀视频研发团队欢迎大家与我们继续探讨开发问题。同时,如果大家还想了解更多视频相关解决方案,也欢迎联系我们了解。

这篇关于Visual Studio 2017自建WebRTC中peerconnection_client程序报LNK2019 无法解析的外部符号错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930773

相关文章

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven