MicroSIP-3.21.3+pjproject-2.13.1+ opus-1.3.1+VS2019
本文记录了我通过VS2019编译MicroSIP-3.21.3开源项目的过程。
Microsip:MicroSIP source code
pjproject:Download PJSIP - Open Source SIP, Media, and NAT Traversal library
opus:Downloads – Opus Codec (opus-codec.org)
下载并解压后如图:

用vs 2019将microsip的平台工具集改成VS2019,然后编译。

报错缺失pjsua-lib/pjsua.h

pjsua-lib 是pjproject生成了,因此去编译pjproject。
用vs2019打开pjproject-2.13.1解决方案,并将所有项目的平台工具集改成VS2019,然后编译。
报错缺失config_site.h

找错,如下图,提示config_site.h这个头文件的自己创建

参考config_site_sample.h模板,创建一个最小集:

重新编译
依然报错找不到config_site.h

找到你创建的头文件,将他移动到如下图目录

重新编译,成功

此时关于pjproject需要提供的库、头文件,就算是编译好了。
回头继续搞microsip,首先去microsip目录下创建third-party目录,用来存放需要引入的头文件及类库

打开pjproject编译后的目录,将pjsua-lib相关的头文件、lib复制到上面创建的目录下
这是头文件

复制到这里

这是pjproject中的类库

放到这里

接下来配置microsip的lib引用和依赖

包含目录,是头文件所在的位置,库目录是lib文件所在的位置,这里配置我们创建的third-party、third-party/lib


编译,之前缺少pjsua-lib/pjsua.h的错误解决了,但是又有如下错误

继续从pjproject中找到pjsip.h搬过来,如下图,将所有的头文件都弄过来。

然后去编译,提示缺

好,继续搬

继续编译,又报这个

好的,继续找,继续搬

继续编译,报这个

继续搬

继续编译,报这个

继续搬

继续编译,报这个

此时,用vs2019将opus项目打开,进行编译...
找到opus项目的解决方案

打开后编译,成功后,将lib复制过来

继续编译microsip,报这个

进入link阶段了,接下来就是缺失的库的添加了,先把这个库弄过来

重命名libpjproject-i386-Win32-vc14-Debug.lib->libpjproject-i386-Win32-vc14-Debug-Static.lib
继续编译,报这个


pjmedia_get_vid_subsys(),这个找不到

打开pjproject


生成pjproject,将这些库搬过来

连接其中加入这些


替换一遍

重新编译microsip,成功...

MicroSIP-3.21.3+pjproject-2.13.1+ opus-1.3.1+VS2019的更多相关文章
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 全网络最正确的让 Linux 开机进入字符界面的方法及设置 FrameBuffer 分辨率的方法
引言 这个标题有点长,是为了在标题中就把问题说清楚,以便搜索引擎能够把有需要的朋友准确地带到我这里来.目前在网络上,很多关于 Linux 方面的知识是过时的和错误的.我标题中指出的两个知识点就是其中的 ...
- 跨域之jsonp
我们都知道使用<script>标签可以引入外部的JS文件,即使这个JS文件来自于其他的网站,比如我们引用存放在网络服务器上的jQuery框架.在这个过程中,我们已经实现跨域访问.像< ...
- EChart数据的异步加载和更新
ECharts是国内开发一款图标插件,在网页中我们经常要用到图标显示,直接引用十分方便. 直接到ECharts主页调用插件 <!DOCTYPE html> <html style=& ...
- python数据类型详解
目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字符串,例如:str='th ...
- Objective-C中把URL请求的参数转换为字典
上一篇博客中是把URL转换为字典,那么我们如何把URL请求中的参数封装成字典,然后再封装成数组呢?对OC中字符串操作熟练的小伙伴们应该觉得这是一个a+b的问题,没错把URL中的参数转换为字典主要是对字 ...
- Linux Tomcat 6.0安装配置实践总结
系统环境: Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64位 Tomcat下载 从官方网站 http://tomcat.apache ...
- SQL SERVER 2012启动失败 because upgrade step 'SSIS_hotfix_install.sql' 失败
有台数据库服务器(开发服务器),开发人员邮件告诉我,SSMS连接不了这台服务器,远程登录后,发现SQL SERVER的服务停止了,启动服务时报错,服务启动不了.检查错误日志发现下面一些信息 2015- ...
- 软件工程(FZU2015)赛季得分榜,第11回合(beta冲刺+SE总结)
目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 增补作业 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分:b ...
- 【Beta】第5.5次任务发布
PM #100 日常管理&dev版宣传&设计报告管理后台. 后端 #101 完成收藏功能 完成管理员权限表的生成和接入(按位压缩权限表) 验收条件:收藏功能能够正常使用.能够区分常规用 ...
随机推荐
- Code Generate V2.0 代码生成器
Code Generate 代码生成器 系统首页 使用说明 系统默认会根据SQL生成字段信息 className.fieldList.classComment 如下所示: 建表语句 CREATE TA ...
- 【SpringBoot】Session共享
本文参考 Spring Boot 一个依赖搞定 session 共享,没有比这更简单的方案了! 在传统的单服务架构中,只有一个服务器,那就不会存在session共享的问题,但如果在分布式/集群项目中, ...
- 分别在Windows系统和Linux系统环境安装anaconda3和tensorflow
Windows系统环境 一.安装anaconda 这里安装的是Anaconda3-2019.03-Windows-x86_64.exe(python3.7版本) 二.检查安装环境 1.若anacond ...
- UE构建基础和实践:四、使用脚本打包
序言 使用UE版本为UE5.20 在实际项目中,我们常常使用自动化脚本来进行构建,它可以增加我们的生产效率,并降低人为操作带来的失误风险. BuildGraph BuildGraph UE官方提供的构 ...
- zabbix 主动模式下报文分析
获取监控项列表 客户端发起请求 3次握手之后,请求监控项列表: {"request":"active checks","host":&quo ...
- koa搭建nodejs项目并注册接口
使用nodejs注册接口逻辑处理会比较复杂,直接通过express或者koa能够简化开发流程,这里记录用koa来搭建nodejs项目并注册接口,对koa不太熟悉的话可以参考这一篇.让nodejs开启服 ...
- 一文解锁vue3中hooks的使用姿势
vue3 中的 hooks 是什么? 简单来说如果你的函数中用到了诸如 ref,reactive,onMounted 等 vue 提供的 api 的话,那么它就是一个 hooks 函数,如果没用到它就 ...
- iframe子窗口调用父窗口方法
//一个iframe页面调用另一个iframe页面的方法self.parent.frames["sort_bottom"].mapp($("#id").val( ...
- 【后端面经-数据库】Redis数据结构和底层数据类型
目录 1. Redis数据类型 1.1 基本数据类型 1. string 2. hash 3. list 4. set 5. sortset/Zset 1.2 特殊数据类型 1. bitmap 2. ...
- git + docker + docker-compose + Jenkins+Linux 自动化构建、部署、测试过程
Jenkins三大概念: Job:即为任务 插件:maven构建项目.git拉取代码.ssh插件 工作空间:任务的存储空间,即为git代码的存储空间 开发者在本地开发,然后提交到 Source Res ...