分类 其它 下的文章

不会c++,编译走了些弯路,上次编译成功,这次升级新版本又不行了。还是要记下来

1.下载pjproject: https://www.pjsip.org/download.htm1

2.把microsip放到pjproject项目下。作为这个项目的子项目。
分析方法
1)打开microsip.vcxproj项目
2)在项目上右键=>属性=>c/c++=>附加包含目录如图,可以看到很多文件夹属于pjproject的目录,于是推断microsip放在此目录下

3.修改项目属性“常规”=>“平台工具集”为当前安装的编译平台(x86,x64根据目标运行平台修改)

4.此时编译会出现,错误 LNK1104 无法打开文件“vpxmt.lib” 等文件
复制从网上之前找到的vpxmt.lib和opus.lib到pjproject的lib目录

5.再次编译,出现 错误 LNK1104 无法打开文件“libpjproject-x86_64-x64-vc14-Debug-Static.lib”
解决办法:pjproject的lib目录找到libpjproject-xxxxx对应文件(对应平台,当前名为libpjproject-x86_64-x64-vc14-Debug.lib)修改,为libpjproject-x86_64-x64-vc14-Debug-Static.lib

如果编译release版本,可以把这个对应文件复制,然后修改为libpjproject-x86_64-x64-vc14-release-Static.lib(报错会指出文件名)

6.此时会报一大堆错误
这应该是在之前参考网上关掉了pjproject的视频功能,造成视频相关的函数没有编译进去的原因。
LNK2019 无法解析的外部符号 pjsua_vid_win_set_size,该符号在函数 "public: void __cdecl Preview::Start(int)" (?Start@Preview@@QEAAXH@Z) 中被引用

解决办法:打开microsip的const.h,注释掉//#define _GLOBAL_VIDEO

参考资料:
https://blog.csdn.net/sunxiaopengsun/article/details/53924247
MicroSIP编译完全手册