编译环境:WIN10+VS2017+pjproject-2.7.1
一、pjproject源码下载
下载地址:http://www.pjsip.org/
二、相关参考
感谢该博客:https://www.cnblogs.com/chaoyazhisi/p/6143734.html
官方文档:https://trac.pjsip.org/repos/wiki/Getting-Started/Windows#Next:Usingpjprojectlibrariesforyourownapplication
三、编译之前
1、pj配置,通常直接复制并重命名config_site_simple.h为config_site.h
.\pjlib\include\pj\config_site.h
2、包含SDL库、FFMPEG库则在这个文件后加上
1
2
3
4
5
6
|
#define PJMEDIA_HAS_VIDEO 1
//#define PJMEDIA_HAS_OPENH264_CODEC 1
//#define PJMEDIA_HAS_LIBYUV 1
#define PJMEDIA_VIDEO_DEV_HAS_SDL 1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1
#define PJMEDIA_HAS_FFMPEG 1
|
3、下载SDL库、FFMPEG库
在pjproject源码lib文件夹拷贝入相关lib文件,注意x86和x64分别对应不同的文件。
在pjproject源码新建include文件夹,下面分别建立两个文件夹ffmpeg、sdl。
将ffmpeg的inlude头文件拷贝到ffmpeg文件夹下
将sdl的include头文件拷贝到sdl文件下
4、打开pjproject-vs14.sln的解决方案。
对项目 pjmedia_videodev 的 VC++目录 -> 包含目录 添加 ;$(MSBuildStartupDirectory)\include\sdl;
对项目 pjmedia_videodev 的 VC++目录 -> 库目录 添加 ;$(MSBuildStartupDirectory)\lib;
对项目 pjmedia 的 VC++目录 -> 包含目录 添加 ;$(MSBuildStartupDirectory)\include\ffmpeg;
对项目 pjmedia 的 VC++目录 -> 库目录 添加 ;$(MSBuildStartupDirectory)\lib;
对项目 pjmedia_codec 的 VC++目录 -> 包含目录 添加 ;$(MSBuildStartupDirectory)\include\ffmpeg;
对项目 pjmedia_codec 的 VC++目录 -> 库目录 添加 ;$(MSBuildStartupDirectory)\lib;
对项目 pjsua 的 VC++目录 -> 包含目录 添加 ;$(MSBuildStartupDirectory)\include\ffmpeg;
对项目 pjsua的 VC++目录 -> 包含目录 添加 ;$(MSBuildStartupDirectory)\include\sdl;
对项目 pjsua 的 VC++目录 -> 库目录 添加 ;$(MSBuildStartupDirectory)\lib;
5、在解决方案->属性中选择启动项为:pjsua6、调试运行
7、错误提示:error LNK1281: 无法生成 SAFESEH 映像
解决办法:pjsua鼠标右键属性中->连接器->命令,在那里输入: /SAFESEH:NO点击确定再次编译,成功解决问题
如图:
8、重新调试运行
9、提示缺少SDL2.dll、avutil-55.dll等dll文件。
解决办法:把相关的.dll拷贝至.\pjproject-2.7.1\pjsip-apps\build
相关资源下载:http://download.csdn.net/download/acliyu/10153470
10、再重新调试运行,即可运行成功。
成功编译项目资源下载:http://download.csdn.net/download/acliyu/10153450
成功截图: