windows编译新版本linphone

目录​​​​​​​

环境

获取源码(使用5.0.0版本5.3.0-alpha有问题编译不过)

编译环境准备

编译(使用ninja)

编译(不适用使用ninja)

报错解决


linphone-desktop是一款基于SIP的标准开源网络电话系统,它使用了Qt和mediastreamer2开源多媒体库,支持大部分音视频格式,包括H263和H264等。linphone-desktop允许用户通过互联网与他人进行语音、视频和即时文本消息的沟通。它能够通过查询朋友的IP地址并进行拨号,功能强大且支持多种平台,既可以在桌面系统上使用,也可以在移动设备上使用,甚至支持WEB浏览器。linphone-desktop遵循GPL开放源代码协议,可以自由下载和二次开发。
配合kamailio信令服务器,可以实现点对点通话

环境

    1. Visual Studio 2019
    2. Qt 5.15.2版本
    3. msys2
    4. ninja (可选)
    5. python

获取源码(使用5.0.0版本5.3.0-alpha有问题编译不过)

    git clone --recursive https://gitlab.linphone.org/BC/public/linphone-desktop.git -b 5.0.0

编译环境准备

  1. 安装msys2 ,并启动msys2_shell.cmd 用pacman工具安装mingw64工具链
  2. 安装Qt5
  3. 安装doxygen
  4. 安装anaconda 配置环境变量并 安装工具包 pip install pystache six graphviz

编译(使用ninja)

REM 配置环境变量
set PATH=D:\QtNew\5.15.2\msvc2019_64\bin;D:\msys64;D:\msys64\usr\bin;C:\Program Files\doxygen\bin;%PATH%
set Qt5_DIR=D:\QtNew\5.15.2\msvc2019_64\lib\cmake\Qt5

REM 启动一个vs环境
%comspec% /k "D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsx86_amd64.bat"

REM 生成解决方案
cmake -GNinja -Bbuild_ninja -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo
REM 编译
cmake --build build_ninja

编译(不适用使用ninja)

REM 配置环境变量
set PATH=D:\QtNew\5.15.2\msvc2019_64\bin;D:\msys64;D:\msys64\usr\bin;C:\Program Files\doxygen\bin;%PATH%
set Qt5_DIR=D:\QtNew\5.15.2\msvc2019_64\lib\cmake\Qt5

REM 生成解决方案
cmake -Bbuild_vs -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo
REM 编译
cmake --build build_vs

报错解决

  1. linphone-sdk编译报错,提示警告视为错误
    # 打开文件linphone-desktop/linphone-sdk/liblinphone/CMakeLists.txt
    改
    option(ENABLE_STRICT "Build with strict compile options." YES)
    为
    option(ENABLE_STRICT "Build with strict compile options." NO)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/56670.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Bug的严重等级和优先级别与分类

一、 Bug的严重等级定义: 1、 Blocker 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。 严重花屏内存泄漏 用户数据丢失或破坏系统崩溃/死机/冻结模块无法启动或异常退出严重的数值计算错误功能设计与需求严重不符其…

危化品行业防雷检测综合解决方案

危化品是指具有毒害、腐蚀、爆炸、燃烧、助燃等性质,能够对人体、设施或者环境造成危害的化学品。危化品的生产、储存、运输、使用等过程中,都存在着遭受雷击引发火灾或者爆炸事故的风险。因此,对危化品场所进行防雷检测,是保障危…

科研周报1

时间:2023-07-26至2023-08-02 overleaf (LaTex) 生成并排子图 查看以下这段与chatgpt的对话: https://chat.openai.com/share/e7fbdccd-2847-4dbb-b816-db2b7455c628 如果要生成上下排列的子图,将\hfill更换为\即可 其他 前馈控制 参考…

SpringBoot 实现数据加密脱敏(注解 + 反射 + AOP)

SpringBoot 实现数据加密脱敏(注解 反射 AOP) 场景:响应政府要求,商业软件应保证用户基本信息不被泄露,不能直接展示用户手机号,身份证,地址等敏感信息。 根据上面场景描述,我们…

简单工厂模式VS策略模式

简单工厂模式VS策略模式 今天复习设计模式,由于简单工厂模式和策略模式太像了,重新整理梳理一下 简单工厂模式MUL图: 策略模式UML图: 1、简单工厂模式中只管创建实例,具体怎么使用工厂实例由调用方决定&#xff0c…

invalid use of incomplete type class ui(new Ui::MainWindow)报错,解决方案

invalid use of incomplete type class ui(new Ui::MainWindow报错,解决方案 原因解决方案 原因 就是在我改控件button的名字的时候,没有选中控件,导致吧mainwindow的名字改了。。。 解决方案 吧mainwindow的名字改回来 MainWindow 完美解…

blender的下载安装和配置中文环境

引言 在3D建模和动画设计领域,Blender 作为一款强大且免费的开源软件,一直以优秀的性能和对众多技术的支持赢得了大批用户的喜爱。然而,对于刚接触这款软件的用户而言,其安装和配置过程可能会带来一定困扰,尤其是在设…

尝试多数据表 sqlite

C 唯一值得骄傲的地方就是 通过指针来回寻址 😂 提高使用的灵活性 小脚本buff 加成

Spring AOP 中的代理对象是怎么创建出来的?

文章目录 1. AOP 用法2. 原理分析2.1 doCreateBean2.2 postProcessAfterInitialization2.3 getAdvicesAndAdvisorsForBean2.3.1 findCandidateAdvisors2.3.2 findAdvisorsThatCanApply2.3.3 extendAdvisors 2.4 createProxy 今天和小伙伴们聊一聊 Spring AOP 中的代理对象是怎么…

Liunx开发工具

Liunx开发工具 1.Linux编辑器-vim使用1.1vim的基本概念1.2vim的基本操作1.3命令模式命令集1.3.1光标定位1.3.2光标移动1.3.3文本复制1.3.4文本操作 1.4插入模式命令集1.5底行模式命令集 2.vim配置3.sudo配置4.Linux编辑器-gcc/g使用4.1背景知识4.2gcc如何操作 5.函数库5.1函数库…

Linux6.21 ansible playbook 剧本

文章目录 计算机系统5G云计算第一章 LINUX ansible playbook 剧本一、概述二、playbook应用1.示例2.运行playbook3.定义、引用变量4.指定远程主机sudo切换用户5.when条件判断6.迭代7.Templates 模块8.tags 模块 计算机系统 5G云计算 第一章 LINUX ansible playbook 剧本 一、…

官方Office 技巧免费学习平台-WPS学堂

WPS学堂是WPS官方Office 技巧免费学习平台,目前网站累计上线 3000个免费教学视频图文,包含WPS表格(Excel)、WPS文字(Word)、WPS演示(PPT)的操作技巧及新手入门系列课视频,而且教学视频都可以直接在线学习,不…

Windows磁盘清理

针对开发同学,磁盘不够用时,常见的需要清理的内容: 1、虚拟机镜像、Docker镜像等。 通常占用比较大的存储,一个实例从几个G到几十个G。 2、Maven本地仓库。 如果公司有私服,可以全部删掉重新依赖,否则不…

vue中显示在页面顶部的进度条插件——NProgress

我们在一些网站中经常见到导航栏上方的进度条显示,大家仔细观察,其实csnd中也有类似的效果,如下图显示效果,我们现在就来一起看看这个功能需求是怎么实现的。 一、功能需求 首先,实现这个功能其实不难,说实…

cglib动态代理、jdk动态代理及spring动态代理使用

1.项目初始化 1.1 pom.xml <dependencies><!-- spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency>&l…

20230802-下载jdk1.8、jre

搜索oracle oracle官网 https://www.oracle.com/cn/

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(20)-Fiddler精选插件扩展安装让你的Fiddler开挂到你怀疑人生

1.简介 Fiddler本身的功能其实也已经很强大了&#xff0c;但是Fiddler官方还有很多其他扩展插件功能&#xff0c;可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了&#xff0c;为了更好的扩展Fiddler&#xff0c…

MongoDB文档--架构体系

阿丹&#xff1a; 在开始学习先了解以及目标知识的架构体系。就能事半功倍。 架构体系 MongoDB的架构体系由以下几部分组成&#xff1a; 存储结构&#xff1a;MongoDB采用文档型存储结构&#xff0c;一个数据库包含多个集合&#xff0c;一个集合包含多个文档。存储形式&#…

【C++从0到王者】第十五站:list源码分析及手把手教你写一个list

文章目录 一、list源码分析1.分析构造函数2.分析尾插等 二、手把手教你写一个list1.结点声明2.list类的成员变量3.list类的默认构造函数4.list类的尾插5.结点的默认构造函数6.list类的迭代器7.设计const迭代器8.list的insert、erase等接口9.size10.list的clear11.list的析构函数…

Java反射全面详解

1. 什么是反射&#xff1f; 首先听这个名字就有些疑惑&#xff0c;什么是反射&#xff0c;它能用来干什么呢&#xff1f; Java官方对反射的解释是 "反射允许对封装类的字段&#xff0c;方法和构造函数进行编程式访问"。这里的字段指的就是成员变量&#xff0c;方法…