freeswitch windows下编译运行

1. Windows下编译运行

1.1. 准备

  • freeswitch-1.10.8.tar.gz

  • visual studio 2017

说明:

visual studio 需要安装:

image.png

image.png

image.png

1.2. 编译

使用visual studio 打开 freeswitch-1.10.8项目。注意,这里我们采用x64编译:

image.png

1.2.1. 编译FreeSwitchCoreLib模块

在“FreeSwitchCoreLib”模块上右键,点“生成”按钮。

image.png

以下为遇到的编译问题及解决方案:

1.2.1.1. MSB4018 “DownloadPackageTask”任务意外失败

问题描述:

|

严重性 代码 说明 项目 文件 行 禁止显示状态

错误 MSB4018 “DownloadPackageTask”任务意外失败。

System.IO.DirectoryNotFoundException: 未能找到路径“E:\svn\talkback\server\freeswitch-1.10.8\libs\sofia-sip-master”的一部分。

在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

在 System.IO.Directory.InternalMove(String sourceDirName, String destDirName, Boolean checkHost)

在 System.IO.Directory.Move(String sourceDirName, String destDirName)

在 DownloadPackageTask.Execute() 位置 c:\Users\simple\AppData\Local\Temp\hv3nc4br.0.cs:行号 148

在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()

在 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() libsofia_sip_ua_static E:\svn\talkback\server\freeswitch-1.10.8\w32\download_sofia-sip.props 31

|

分析:

可能是网速问题或者是需要翻墙,导致libs\sofia-sip-master下载失败

解决方案:

1. 从visual studio 输出中找到 sofia-sip的下载地址“https://github.com/freeswitch/sofia-sip/archive/master.zip

2. 手动下载后,将压缩包放在freeswitch-1.10.8\libs目录下,解压

3. 在visual studio中,重新点“生成”进行编译

1.2.1.2. 未给任务“SwitchVersionTask”的必需参数“revision”赋值

解决方案:修改“freeswitch-1.10.8\w32\switch_version.props”,将GitCommits注释掉。示意如下:

|

<Target Name="SwitchVersionTarget" BeforeTargets="CustomBuild;Build">

</Target>

|

1.2.1.3. 无法打开包括文件: “switch_version.h”: No such file or directory FreeSwitchCoreLib

分析:

因为下载的是git 上托管的项目,没有版本信息,需要自己根据template 自己定义。

解决方案:

1. 切换目录到:freeswitch-1.10.8\src\include

2. 拷贝switch_version.h.template,重命名switch_version.h

3. 按实际版本号进行修改

|

define SWITCH_VERSION_MAJOR "1"

define SWITCH_VERSION_MINOR "10"

define SWITCH_VERSION_MICRO "8"

define SWITCH_VERSION_REVISION "" "~" _fs__bits

define SWITCH_VERSION_REVISION_HUMAN "" " " _fs__bits

define SWITCH_VERSION_FULL SWITCH_VERSION_MAJOR "." SWITCH_VERSION_MINOR "." SWITCH_VERSION_MICRO SWITCH_VERSION_REVISION

define SWITCH_VERSION_FULL_HUMAN SWITCH_VERSION_MAJOR "." SWITCH_VERSION_MINOR "." SWITCH_VERSION_MICRO " " SWITCH_VERSION_REVISION_HUMAN

|

4. 在visual studio中,重新点“生成”进行编译

1.2.1.4. cannot open include file 'switch_version.inc'

分析:

因为下载的是git 上托管的项目,没有版本信息,需要自己根据template 自己定义。

解决方案:

1. 切换目录到:freeswitch-1.10.8\w32\Library

2. 拷贝switch_version.inc.template,重命名switch_version.inc

3. 按实际版本号进行修改

|

define TOSTR(x) #x

define STR(x) TOSTR(x)

define SWITCH_VERSION_MAJOR 1

define SWITCH_VERSION_MAJOR_STR STR(SWITCH_VERSION_MAJOR)

define SWITCH_VERSION_MINOR 10

define SWITCH_VERSION_MINOR_STR STR(SWITCH_VERSION_MINOR)

define SWITCH_VERSION_MICRO 8

define SWITCH_VERSION_MICRO_STR STR(SWITCH_VERSION_MICRO)

define SWITCH_VERSION_REVISION ""

define SWITCH_VERSION_REVISION_HUMAN ""

define SWITCH_VERSION_YEAR "2022"

define SWITCH_VERSION_ALL "1.10.8"

|

4. 在visual studio中,重新点“生成”进行编译

1.2.2. 编译FreeSwitchConsole模块

在“FreeSwitchConsole”模块上右键,点“生成”按钮。

image.png

1.2.3. 编译Frwwswitch.2017

在“Freeswitch.2017”上右键,点“生成解决方案”按钮。

image.png

1.3. 运行

运行是遇到问题:

1.3.1. 无法查找或打开PDB文件

我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS 操作步骤也一样)。 1) 选择菜单栏中的“调试--> 选项”,如下图所示:

image.png
  1. 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:
image.png
  1. 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录(目录可以为空)即可:
image.png
  1. 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容