linphone二次开发之环境搭建_linux二次开发
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
这里需要注意的是一定要选择Windows 8.1 SDK,否则编译会有问题,其他的就是选择最基本的三个开发组件就可以了。
3、安装MinGW
下载地址
:https://sourceforge.net/projects/mingw,安装最新的就可以。
注意事项
选择所有的基本安装除了 Ada 和 Fortran
这里下载的时候好像必须科学上网,不然没有办法更新。
4、安装Yasm
下载地址:
https://yasm.tortall.net/Download.html
这里还是再强调一下,这里设置环境变量的的目录,就是用这些第三方工具编译代码或一些辅助作用,包括后面需要安装的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文件。
总结
虽然写这些简单,但是如果你是第一次接触这个开源项目肯定会遇到各种问题,笔者当初做的时候也是一样,如果大家在开发过程中什么问题可以直接给我留言或私信给我进行交流,当然可以和我们团队进行商务合作。