linphone-desktop 4.2 windows端的编译心得

上周五接到领导安排,说需要调用linphone sdk实现sip的视频通话,对于我来说,官方那里可用的是linphone-sdk和linphone-desktop两个工程,由于是头一次接触开源代码,我本身还是挺怵的,但是作为一名程序员,要迎难而上!
今天是周二,所幸昨天就已经把desktop的工程编译通过了

环境配置参考 https://www.jianshu.com/p/51c6629af1a4

gitlab上的源码链接 https://gitlab.linphone.org/BC/public/linphone-desktop

准备工作

首先参考官方给的 README.md 。里面只提到了非常非常基本的库的安装,除此之外还要安装大量的库。
所有库都装在默认的C盘

1.VS 2015

安装时勾选以下选项

  • Windows Universal Platform development
  • Desktop C++ Development
  • .NET Development
  • Windows 8.1 SDK

2.Qt5.9及以上版本,设置对应环境变量

Qt5_DIR="C:\Qt\5.9\msvc2015\lib\cmake"
PATH="C:\Qt\5.9\msvc2015\bin;%PATH%"

安装时勾选msvc2015

3.MinGW

安装

  • mingw32-base-bin
  • mingw32-gcc-g++-bin
  • msys-base-bin

将其bin目录添加到系统环境变量Path中

以上只是官方提到的,除此之外还需要安装:

4.cmake

https://cmake.org/download/ 下载cmake二进制文件
解压文件后将cmake下的bin目录添加到系统环境变量Path中,可使用cmake -version进行校验是否安装成功。

5.安装python2.7

https://www.python.org/downloads/ 下载python2.7 msi版本安装器
安装完毕之后,将安装目录python2.7添加到系统环境变量Path中,可使用python -v进行校验。
为了使用pip,需要同时将python2.7\Scripts也添加到环境变量Path中。

6.安装doxygen

http://www.doxygen.nl/download.html 下载
安装完毕后,将doxygen/bin添加到系统环境变量Path中,可使用doxygen -v进行校验

7.安装dot (graphviz)

https://graphviz.gitlab.io/_pages/Download/Download_windows.html 下载
解压后,将graphviz-2.38\release\bin添加到环境变量Path中

8.安装pystache

https://pypi.org/simple/pystache/ 下载pystache-0.5.4.tar.gz
打开cmd,定位到压缩包所在文件夹,使用pip进行安装
pip install pystache-0.5.4.tar.gz

9.安装wheel

https://pypi.org/simple/wheel/ 下载 wheel-0.29.tar.gz
打开cmd,定位到压缩包所在文件夹,使用pip进行安装

10.安装GetGnuWin32

https://sourceforge.net/projects/getgnuwin32/files/latest/download 下载安装,将其bin目录添加到系统环境变量中

11.安装javajdk

按照百度经验正确配置环境变量,使用java命令检验是否成功

编译开始(生成VS工程文件)

使用在代码根目录使用以下指令进行vs工程文件生成

python prepare.py -G "Visual Studio 14 2015" -DENABLE_DOC=OFF

报错,提示文件不全,分布使用git submodule sync 和 git submodule update --init –recursive递归的下载全部内容,全部下载完成之后有1个多G,我在公司的网不好,就回家下载的。
全部下载之后,再次执行

python prepare.py -G "Visual Studio 14 2015" -DENABLE_DOC=OFF

即可生成成功

如果没成功,我第二次在新设备上生成时,报了pkg.m4,libglib-2.0-0.dll,intl.dll这三个文件重命名错误,我理解也就是文件移动失败。
第一次我将工程放在了C盘里没有这个问题,第二次,我打开CheckBuildTools.cmake查看报错的行,手动将这三个文件放到指定目录之后,删掉报错的那三行,再生成,生成成功!

编译工程

打开linphone-desktop\WORK\desktop\cmake\project.sln文件,将版本设置为win32 release,编译ALL_BUILD工程

报错

CMake Error at CMakeLists.txt:84 (check_symbol_exists):
Unknown CMake command "check_symbol_exists".

网上搜了一下,是在CMAKELIST文件里没有包括相关的文件导致,打开“linphone-desktop\linphone-sdk\ortp\CMakeList.txt”
加入一行

include(CheckSymbolExists)

即可

posted @ 2019-11-19 10:56  0小野人0  阅读(2982)  评论(0编辑  收藏  举报