1. Windows下编译运行
1.1. 准备
freeswitch-1.10.8.tar.gz
visual studio 2017
说明:
visual studio 需要安装:
1.2. 编译
使用visual studio 打开 freeswitch-1.10.8项目。注意,这里我们采用x64编译:
1.2.1. 编译FreeSwitchCoreLib模块
在“FreeSwitchCoreLib”模块上右键,点“生成”按钮。
以下为遇到的编译问题及解决方案:
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”模块上右键,点“生成”按钮。
1.2.3. 编译Frwwswitch.2017
在“Freeswitch.2017”上右键,点“生成解决方案”按钮。
1.3. 运行
运行是遇到问题:
1.3.1. 无法查找或打开PDB文件
我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS 操作步骤也一样)。 1) 选择菜单栏中的“调试--> 选项”,如下图所示:
- 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:
- 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录(目录可以为空)即可:
- 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了