pjproject编译方法与相关错误解决

来源:互联网 发布:判断int类型数据长度 编辑:程序博客网 时间:2024/06/05 20:05

编译环境: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、在解决方案->属性中选择启动项为:pjsua

6、调试运行

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

    成功截图:


原创粉丝点击