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

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

ruisui884个月前 (02-16)技术分析17

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二次开发” 的相关文章

    微软的Linux发行版终于加入了对XFS根文件系统的支持

    当许多Linux发行版在评估新的根文件系统选项或甚至像OpenZFS这样的特性,微软内部Linux发行版到本月才开始支持XFS作为根文件系统选项。随着这个月对微软内部Linux发行版CBL-Mariner的更新,他们现在支持XFS作为根文件系统。到目前为止,这个用于微软内部各种目的的Linux发行版...

    K8s里我的容器到底用了多少内存?

    作者:frostchen导语 Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的...

    HTML5最新版本介绍

    HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范...

    JavaScript数组操作:掌握常用方法,提升开发效率

    JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

    Vue Router 4 路由操作 - 路由导航

    路由导航分为 声明式导航 和 编程式导航。通过 <router-link to="..."> 标签跳转的方式为声明式导航。通过 路由实例对象(router.push(...))跳转的为编程式导航。导航到不同的位置想要导航到不同的URL,使用 router.push 方法。...

    VUE3+JAVA商城源码小程序APP商城

    三勾小程序商城基于springboot+element-ui+uniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。软件架构后端: springboot2.3.12管...