zoukankan      html  css  js  c++  java
  • 用VS2015编译pjsip的工程pjproject-vs14

    先去官网下载最新的源码包,我用的版本是2.7.1 。

    将源代码解压后,在路径:pjproject-3.7.1pjlibincludepj 中创建新文件config_site.h,内容如下:

     1 #ifndef __CONFIG_SITE_H__ 
    2
    #define __CONFIG_SITE_H__ 3 4 #define PJMEDIA_HAS_VIDEO 1 5 #define PJMEDIA_HAS_OPENH264_CODEC 1 6 #define PJMEDIA_HAS_LIBYUV 1 7 #define PJMEDIA_VIDEO_DEV_HAS_SDL 1 8 #define PJMEDIA_VIDEO_DEV_HAS_DSHOW 1 9 #define PJMEDIA_HAS_FFMPEG 1 10 11 #endif
    •  ffmpeg

    去ffmpeg的一个编译站点https://ffmpeg.zeranoe.com/builds/ 下载最新的开发版本,我下载的是3.4.1 。

    将它解压到pjproject-3.7.1下,ffmpeg的include和lib目录应该是在pjproject-3.7.1/ffmpeg-3.4.1-win32-dev下。

    •  SDL

    去SDL官网https://www.libsdl.org/download-2.0.php下载SDL的编译版本,我下载的是2.0.7

    将它解压到pjproject-3.7.1下,SDL的include和lib目录应该是在pjproject-3.7.1/SDL2-2.0.7下。

    • OpenH264

    去OpenH264官网下载源码,具体编译方法请参考另一帖《Windows下用VS2015+MSYS编译OpenH264》。

    将源码解压到pjproject-3.7.1下,按照帖子里的方法去编译即可。编译完成后,openh264.lib的路径是在pjproject-3.7.1/openh264-master下。

    • baseclasses

    这个包用来生成strmbasd.lib和strmbase.lib,代码来源于Window 7 SDK,可以从这个链接下载https://www.microsoft.com/en-us/download/details.aspx?id=18950

    将ISO文件加载到虚拟光驱,但你不必全部安装,只需要将setup下的WinSDKSamples安装即可,之后就可以在

    C:Program FilesMicrosoft SDKsWindowsv7.0Samplesmultimediadirectshowaseclasses

    中找到这个工程。

    但事实上,pjproject-3.7.1中已经自带了这个源码,源码位置在pjproject-3.7.1 hird_partyBaseClasses中,编译结果在pjproject-3.7.1 hird_partylib下。

    可根据具体的编译需要使用。

    -----------------------------------------------------------------------------------------------------------

    至此,需要的编译环境基本上都有了,在开始编译前,还要修改下pjproject-vs14解决方案中的一些配置:

    要在pjmedia、pjmedia-codec、pjmedia-videodev、pjsua这几个工程中中添加ffmpeg、SDL、OpenH264的include或lib路径。

    右键点击工程->属性->配置中选择“所有配置”->C/C++->常规->附加包含目录中添加include路径;

    右键点击工程->属性->配置中选择“所有配置”->链接器->常规->附加库目录中添加lib路径。

    最后一个关键点是pjsua工程,要在链接器->输入->忽略特定默认库中添加libcmt.lib(release版本)或libcmtd.lib(debug版本),还要在链接器->命令行->其他选项中添加/SAFESEH:NO,忽略一个错误警告:error LNK2026 模块对于 SAFESEH 映像是不安全的。

     That's all.

  • 相关阅读:
    vuex 数据持久化
    vue中通过第三方代理解决跨域问题
    谷歌浏览器格式化插件
    mongodb安装配置
    Nodejs express中创建ejs项目
    elementui tree 组件实现鼠标移入节点,节点后面显示添加删除按钮
    iframe页面无法跳转问题
    elementui table组件,根据数据的不同,显示不同的内容
    elementui tree组件自定义图标
    Aborting a running program
  • 原文地址:https://www.cnblogs.com/cner/p/8126453.html
Copyright © 2011-2022 走看看