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 完成收藏功能 完成管理员权限表的生成和接入(按位压缩权限表) 验收条件:收藏功能能够正常使用.能够区分常规用 ...
随机推荐
- adb如何做Android ui自动化(这一篇就够了)
一.简介 我们都知道在做Android ui自动化的时候用的是appium,环境搭建贼难受.如果我们在工作中遇到需要实现简单的自动化功能,可以直接使用adb来完成,无需去搭建繁琐的appium.ADB ...
- jquery中for循环一共几种
$.each() 第一个参数是循环的对象 , 第二个参数对对象中的每一个元素 执行 function函数 ,function 的第一个参数 i 是索引,item 是 循环对象中的每一个元素.
- vim玩法 .vimrc配置映射指令nnoremap、inoremap
编辑 vimrc 文件, vi ~/.vimrc vim中的映射指令,用于将一个按键绑定到某一个操作上. map: 执行映射指令,执行时会进行递归替换,可能会出现"按键循环"的情况 ...
- 2021-11-29 Wpf的ViewModel和xaml绑定
ViewModel代码 public class MainViewModel { MainWindow _mainWindow; public MainViewModel(MainWindow mai ...
- 搭建rsyncd服务
前言 rsync常用来做文件传输和同步.本文示例中客户端通过rsync同步服务端的/home/tmp目录到本地(不是将客户端的文件同步到服务端). 环境信息 IP 系统版本 rsync版本 说明 19 ...
- [golang]使用gocron编写定时任务
前言 linux自带的crontab默认情况下只能精确到分钟,没法执行秒级任务.当然,也不是不行,比如: * * * * * for i in $(seq 1 11);do echo hello &g ...
- debian11安装mysql5.7
前言 mysql官网5.7版本的只找到debian10的,没有debian11的,试了下也能用. 系统版本:debian 11 mysql版本:5.7.35 步骤 下载bundle的tar包.官网地址 ...
- 自定义组件使用v-model
场景描述 我们在一个系统中,会出现这样的情况, 有一个联系人的下拉框,这个下拉框中的数据是从服务端获取的. 在很多页面都需要使用这个联系人(下拉框). 我们通常是这样做的: 写一个下拉框组件然后调用接 ...
- 【日常踩坑】解决 pip 安装第三方包时因 SSL 报错
目录 踩坑 什么是 SSL ? 为什么会报错 解决办法 1. 临时关闭代理.VPN 或者网络抓包等软件 2. 通过镜像的 HTTP 源来避免 SSL 认证问题 3. 切换至低版本 pip 参考资料 踩 ...
- 京东工业根据ID取商品详情 API
item_get-根据ID取商品详情 注册开通 vipmro.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secret ...