当前位置:首页 > 技术分析 > 正文内容

linphone二次开发之环境搭建_linux二次开发

ruisui883个月前 (02-16)技术分析12

linphone是什么

是一种开源即时消息传递和IP语音/视频(VoIP)电话,它使通过语音,视频和文本消息传递与互联网上的人们自由通信。其实说白了就是可以通过SIP协议(这个是重点)进行音视频通话,发消息,这个是linphone的官网:http://linphone.org,这个是国外的网站打开可能有些慢。

linphone的代码

github:https://github.com/BelledonneCommunications/linphone-desktop.git

gitlab:https://gitlab.linphone.org/BC/public/linphone-desktop.git

注:笔者开始接触这项目的时候,代码应该是放在linphone自己的服务器上,如果要下载整套系统是非常的费劲的,不仅仅需要科学上网还要忍受几十K的下载速度,现在已经把代码放到了github和gitlab上面了,好很多了,不过从submodule里面可是可以看到都是访问的gitlab里面的。

环境搭建和代码编译下载

其实代码里面的README都已经写的很清楚了,这就笔者就是给翻译一下和备注一下需要注意的问题,如果已经有经验的同学可以直接跳过,因为linphone是跨平台的,这个系统是用C++,框架是QT来开发的,所以针对每个平台都需要自行编译,我们这就说一下Window吧,如果这个会了其他的平台都是一样的。

1、下载QTCreator

地址:
http://download.qt.io/official_releases/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe

环境变量设置:

Qt5_DIR=C:\Qt\Qt5.14.2\5.14.2\msvc2017\lib\cmake

path=%path%;C:\Qt\Qt5.14.2\5.14.2\msvc2017\lib\cmake

安装coreuntils:

mingw-get install msys-coreutils

QT5_DIR就是安装QT的路径,这里我用的msvc2017,因为笔者安装的VS2017,下面会讲安装VS2017的注意是事项。path就是Window的环境变量,加一个QT的路径。基本上每安装一个第三方的工具都会设置环境变量,所以一定要清楚设备环境变量的意义。

2、安装VS2017(VS2015也可以)

下载地址:
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads, 选择vs2017社区版就可以了,不要选错了哦。

安装是需要注意

选择 Windows Universal Platform development, Desktop C++ Development, .NET Development

  • 在 "Installation details". 中"Desktop C++ Development" and add "SDK Windows 8.1 and SDK UCRT",组件: Windows 8.1 SDK
  • 这里需要注意的是一定要选择Windows 8.1 SDK,否则编译会有问题,其他的就是选择最基本的三个开发组件就可以了。

    3、安装MinGW

    下载地址
    :https://sourceforge.net/projects/mingw,安装最新的就可以。

    注意事项

    选择所有的基本安装除了 Ada 和 Fortran

  • gcc版本是6.3.0,这个README里面强调了,这个设置环境变量测试一下
  • 验证一下:gcc --version能够输出对应的版本6.3.0就可以了
  • 这里下载的时候好像必须科学上网,不然没有办法更新。

  • 设置环境变量:
  • 在PATH环境变量里面加上:C:\MinGW\bin,MinGW默认的安装路径就在C:\MingGW,没有什么特殊要求就不用改这个路径了。
  • 4、安装Yasm

    下载地址:
    https://yasm.tortall.net/Download.html

  • 直接下载:download yasm-1.3.0-win32.exe
  • 注意事项:
  • 下载完解压以后应该是一个yasm-1.3.0-win32.exe,先更名为yasm.exe,把这个文件放到一个路径里面,然后把这个路径加入到PATH路径里面,如果图省事就直接放到系统目录的C:/Windows/System32下面也可以,但是不建议这么做。
  • 验证一下是否生效:yasm --version是否有版本显示就可以了。
  • 这里还是再强调一下,这里设置环境变量的的目录,就是用这些第三方工具编译代码或一些辅助作用,包括后面需要安装的python。

    5、nasm

    下载地址:
    https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win64/

    注意事项:

    有两个文件:
    nasm-2.14.02-installer-x64.exe,nasm-2.14.02-win64.zip

    这两个一个是安装包,一个是zip包,无论是哪一种安装,最后只要把它里面的目录加入到PATH里面就可以了,

    验证一下:nasm --version 能显示版本号就可以了

    笔者的是直接下载的zip包,直接把C:\app\nasm\nasm-2.15添加到环境变量里面了

    6、Git

    这个工具就不用再多说了,既然能够看到这个文章肯定是有一定开发经验的,这个如果不知道,就搜索一下吧。

    7、doxygen

    官网地址:
    https://www.doxygen.nl/index.html

    下载地址:
    https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/windows/

    环境变量:把下载下来的文件夹加入到PATH路径里面

    验证一下:doxygen --version 能够看到版本号就OK了。

    8、Perl

    下载地址:http://strawberryperl.com, 直接下载最新版就可以了。

    环境变量:把这个C:\Strawberry\perl\bin加入环境变量,这里是我自己安装的目录,需要确认一下自己是不是这个目录哦。

    验证一下:perl --version

    9、python

    下载地址:
    https://www.python.org/downloads/release/python-381/

    这里下载是python3.8,其实2.7也可以的(但是2.7快要停止了,所以...)

    pip install pystache --user
    pip install six --user

    这里需要安装两个包。

    到这里Window的环境基本上都已经弄好了,我们来总结一下编译linphone需要的工具,其实README里面已经说的很清楚了,这里再给列一下:

    • cmake >= 3.15
    • python :3.8
    • pip :如果安装包自带了,就不用安装了(这个是python的包管理工具)
    • yasm
    • nasm
    • doxygen
    • Perl
    • Pystache : 用'pip install pystache --user'直接安装
    • six : 用 'pip install six --user'
    • git

    因为Window的特殊性没有GCC,cmake什么的所以才需要安装MingGW,但是在linphone界面和一些逻辑用的是QT所以需要安装QT框架,VS就不用说了各种版本的SDK库需要依赖,跑不掉的。

    下载和编译源码

    linphone有很多submodule,所以需要进行submodule进行下载
    git clone https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive 
    
    git submodule update --init --recursive
    
    #进入到linphone-desktop
    cd linphone-desktop
    #新建一个build文件夹
    cd build
    #然后执行cmake命令
    cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -A Win32
    cmake --build . --target ALL_BUILD --parallel 10 --config RelWithDebInfo
    

    如果上面的命令顺利的话就可以看到build目录下面有一个OUTPUT,这个里面就有我们编译好的bin目录下面就有linphone.exe文件。

    总结

    虽然写这些简单,但是如果你是第一次接触这个开源项目肯定会遇到各种问题,笔者当初做的时候也是一样,如果大家在开发过程中什么问题可以直接给我留言或私信给我进行交流,当然可以和我们团队进行商务合作。

    扫描二维码推送至手机访问。

    版权声明:本文由ruisui88发布,如需转载请注明出处。

    本文链接:http://www.ruisui88.com/post/1983.html

    标签: gitsubmodule
    分享给朋友:

    “linphone二次开发之环境搭建_linux二次开发” 的相关文章

    vue3中父子传值、defineProps用法、defineEmits用法

    Vue3中新增了一个 script setup 语法糖模式,可以在单文件组件中更简洁地编写组件逻辑。使用 script setup 语法后,props、data、computed、methods 等选项不再需要独立定义,而是可以直接在 setup 函数中声明,代码结构更加清晰,并且可以更方便地使用响...

    手把手教你Vue之父子组件间通信实践讲解【props、$ref 、$emit】

    组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。那么组件间如何通信,也就成为了vue中重点知识了。这篇文章将会通过props、$ref和 $emit 这几个知识点,来讲解如何实现父子组件间通信。转载链接:https://www.jia...

    Vue.js 组件通信的 3 大妙招

    在 Vue.js 中,组件化是其核心概念之一,允许你将复杂的界面拆分成多个独立的、可复用的组件。在构建大型应用时,如何高效地在组件之间传递数据和触发事件是非常重要的。Vue.js 提供了多种方式来处理组件间的通信,下面是最常用的 3 种方式:1.父子组件通信:通过 Props 和 Events在 V...

    79.idea中git合并分支操作分享

    文章目录前言1.fetch的操作2.合并最新代码到当前的开发分支3.解决冲突4.分支合并:5.完成代码合并总结前言git的操作在日产的工作中也非常重要,团队化的代码管理,每次如果代码被别人覆盖或者自己的代码不能提交到服务器那是灾难性的结果,本篇进行一篇分享来总结下idea中git的操作帮助java开...

    「干货」FPGA设计中深度约束技巧及调试经验总结

    今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结。随着FPGA对时序和性能的要求越来越高,高频率、大位宽的设计越来越多。在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码可能无法满足时序要求。另外,最近跟网友聊天时,有谈到公众号寿命的问题,我觉得网络交换FPGA公众号应...

    雅马哈TMAX 560 TECH MAX 外媒深度测评

    应雅马哈(Yamaha)的邀请,在葡萄牙埃斯托里尔对全新的Yamaha TMAX 560 Tech Max踏板车进行了测试,在这里TMAX 560 Tech Max售价为11649英镑。雅马哈TMAX长期以来一直站在踏板车的顶端,就声誉和知名度而言,它是当之无愧的大踏板界NO.1。2020 TMAX...