- 源码,直接从git上拉下来 https://github.com/signalwire/freeswitchhttps://github.com/signalwire/freeswitch
https://github.com/signalwire/freeswitch
- 依赖库文件下载(默认编译过程会自动下载,可能需要翻墙)
下载根路径: http://files.freeswitch.org/ // 也可以从这里获取源码
依赖库文件下载:Index of /downloads/libs
- VS2019编译问题汇总
- 编译FreeSwitchCoreLib
错误:w32\switch_version.props(128,7): error MSB4044: 未给任务“SwitchVersionTask”的必需参数“revision”赋值。
直接注释调GitCommits
2. switch_version.c(37,10): fatal error C1083: 无法打开包括文件: “switch_version.h”: No such file or directory
因为下载的是git 上托管的项目,没有版本信息,需要自己根据template 自己定义,搜索
switch_version.h.template,拷贝重命名switch_version.h
#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
3. 1>switch_version.rc2(1): fatal error RC1015: cannot open include file 'switch_version.inc'.
同上,
#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 7
#define SWITCH_VERSION_MICRO_STR STR(SWITCH_VERSION_MICRO)
#define SWITCH_VERSION_REVISION ""
#define SWITCH_VERSION_REVISION_HUMAN ""
#define SWITCH_VERSION_YEAR "2021"
#define SWITCH_VERSION_ALL "1.10.8"
基本修改完成后,FreeSwitchCoreLib就可以编译完成了。如果下载官方发布的release版本,应该不会有上述问题。
- 编译FreeSwitchConsole, 没啥问题,一把过
- 如果需要完整编译整个解决方案,需要下载好多依赖的第三方库,需要网速稳定,下载失败了也可以手动下载。下载地址见上方【依赖库文件下载】。
- 最后安装程序报错
E:\WorkSpace\FreeSwitch\freeswitch-master\w32\Setup\Product.2017.wxs(94,0): error LGHT0103: The system cannot find the file 'd:\setup\Microsoft Visual Studio\2019\Enterprise\\VC\Redist\MSVC\14.29.30133\MergeModules\\Microsoft_VC142_DebugCRT_x64.msm'.
1>已完成生成项目“Setup.2017.wixproj”的操作 - 失败。
打开Product2017.wxs 看这句
<?if $(var.Platform) != x64 ?>
<Merge Id="CrtFiles_x86"
SourceFile="$(var.MergeModules)\Microsoft_VC$(var.VCVer)_$(var.CRT_Configuration)CRT_x86.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
<?if $(var.Platform) = x64 ?>
<Merge Id="CrtFiles_x64"
SourceFile="$(var.MergeModules)\Microsoft_VC$(var.VCVer)_$(var.CRT_Configuration)CRT_x64.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
用everything 搜一下,当前电脑上没有 Microsoft_VC142_DebugCRT_x64.msm这个文件。
目前不知道这个文件哪儿来的,我就借用Microsoft_VC142_DebugCRT_x64.msm 来尝试基本打包程序的安装包(这个安装包可能有问题,最终merge的资源不一定能保证安装包最终可运行-待测试)。
至此,从git上拉下来的代码,就在本地全部编译完成了。最后列一下我的编译顺序
FreeSwitchCoreLib
FreeSwitchConsole
编译整个解决方案(依赖的项目报错,多半是文件下载不完成,删掉重新下载编译)
SetUp.2017 缺少Microsoft_VC142_DebugCRT_x64.msm文件,用其他版本替换待测试。
提示SSL certifficate 已过期。