Window下编译PJSIP,不编译Media模块

news/2024/12/22 1:24:41/

Windows系统下使用VS2017进行编译PJSIP。

下载地址

PJSIP的地址:https://github.com/pjsip/pjproject
在线clone太慢的话,可以直接在这里下载比clone会快很多:
https://github.com/pjsip/pjproject/releases

安装OpenSSL

直接安装已经编译好的OpenSSL,地址:
https://slproweb.com/products/Win32OpenSSL.html

等下还需要用到OpenSSL的安装目录。

添加 config_site.h 文件

这个文件需要手动添加,官方文档中也是说了。在路径下添加:

pjproject\pjlib\include\pj

在这里插入图片描述
内容如下:

#ifndef CONFIG_SITE_H
#define CONFIG_SITE_H
#include <pj/config_site_sample.h>
//启用OpenSSL
#define PJ_HAS_SSL_SOCK 1
#endif

编译

双击下面这个红框中的sln文件。
在这里插入图片描述

打开之后会提示,什么.Net什么版本不对是否切换之类的,选中请勿加载此项目。(类似下面的图片)
在这里插入图片描述
接下来我们去掉一些不需要生成的项目,就是我们不需要的项目。
除了以下所有的项目,其它项目都移除掉

  • pjlib
  • pjlib_util
  • pjnath
  • pjsip_core
  • pjsip_simple
  • pjsip_ua
  • pjsua_lib
  • pjsua2_lib

添加OpenSSL头文件目录和库目录

把你的OpenSSL安装目录拷贝一下,分别用到了里面的include和lib文件夹。
比如我的:
C:\Program Files\OpenSSL-Win64

添加到项目中:
在这里插入图片描述
啊对了,上面列举出来的项目都需要在这个地方加上,记得改哦。
有一个非常好用的WIndow自带的小工具:剪切板,它可以将直接ctrl + c的内容记录下来。
按 win + v 键,弹出。

这样就可以愉快的编译了,吐槽一下,自带的Media模块真的很多第三方库,而我就是需要SIP通信这一块而已。

编译好之后,就可以将头文件和lib文件拷贝出来了。
在这里插入图片描述
其它的也是拷贝这两个文件夹,大概就这样。
在这里插入图片描述


http://www.ppmy.cn/news/48044.html

相关文章

Blender3.5 视图切换

目录 1. 数字小键盘切换视图1.1 正交顶视图1.2 正交前视图1.3 正交右视图1.4 透视图1.5 四格视图 2. 鼠标点击切换视图2.1 点击视图&#xff0c;根据需求选择对应视图2.2 点导航栏的坐标轴切换 3. 启用字母区数字键3.1 编辑——偏好设置——输入——勾选“模拟数字键” 1. 数字…

Downie 4 4.6.14 MAC上最新最好用的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器&#xff0c;可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 下载 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的…

使用计算机视觉实战项目精通 OpenCV:1~5

原文&#xff1a;Mastering OpenCV with Practical Computer Vision Projects 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线…

拿下模板进阶

模板进阶 1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将…

Java并发工具合集JUC大爆发

1. CountDownLatch CountDownLatch是一个同步计数器&#xff0c;初始化的时候 传入需要计数的线程等待数&#xff0c;可以是需要等待执行完成的线程数&#xff0c;或者大于 &#xff0c;一般称为发令枪。\ ​ countdownlatch 是一个同步类工具&#xff0c;不涉及锁定&#xff0…

TitanIDE 新版本来袭,全新“效能看板”上线

TitanIDE产品团队于4月17日晚发布了TitanV2.6.3版本&#xff0c;作为一次重要的版本迭代&#xff0c;新版本主要增加/优化了以下重大功能&#xff1a; 全新效能看板上线&#xff0c;研发进度一目了然&#xff1b;新增代码拷贝、下载权限管理功能&#xff1b;项目启动提速&…

ObjectMapper 对象的基本使用(三)

一.简介 Jackson ObjectMapper可以从字符串、流或文件解析JSON&#xff0c;并创建Java对象或对象图来表示已解析的JSON。将JSON解析为Java对象也称为从JSON反序列化Java对象 Jackson ObjectMapper也可以从Java对象创建JSON. 从Java对象生成JSON的过程也被称为序列化Java对象到…

Leetcode912.排序数组(三路划分)

文章目录 一、三路划分二、Leetcode912.排序数组 一、三路划分 为何还会有三路划分&#xff1f; 快速排序算法在某个数据大量重复时效率极低&#xff0c;在运行程序时会超出时间限制&#xff0c;为了解决数据大量重复的情况下&#xff0c;三路划分诞生了。三路划分是基于快速排…