当前使用的 pjproject 版本为1.5.5,开发环境为VC6,其它VS高级版本应该类似
一、编译前准备
首先生成文件 pjlib/include/pj/config_site.h,即使内容为空也可以,具体使用方法参见同一目录下的 config_site_sample.h
二、开发环境需求
1、添加微软的 Platform SDK 和 DirectX9 SDK 到VC6中的Include和Lib目录下,完成后的目录顺序如下:
Platform SDK 版本为2003,由微软官网下载
DirectX9 SDK 版本为 Update (February 2005),下载地址为
http://download.microsoft.com/download/a/c/d/acdfb557-266f-4af4-8673-6ab8009b4ddd/dxsdk_apr2005.exe
[Include files]
D:/Develop/DirectX9SDK/Include
D:/Program Files/Microsoft Visual Studio/VC98/INCLUDE
D:/Program Files/Microsoft Visual Studio/VC98/MFC/INCLUDE
D:/Program Files/Microsoft Visual Studio/VC98/ATL/INCLUDE
D:/Develop/PlatformSDK/include
[Library files]
D:/Develop/DirectX9SDK/Lib/x86
D:/Develop/PlatformSDK/Lib
D:/Program Files/Microsoft Visual Studio/VC98/LIB
D:/Program Files/Microsoft Visual Studio/VC98/MFC/LIB
2、若要支持 TLS,则还需添加 OpenSSL 开发包,考虑到目前还用不着这一块,暂未添加
三、编译
打开工程目录下的 pjproject.dsw,设 pjsua 为活动工程,分别编译其Debug和Release版本。成功后,各个库分别生成在相应目录下,为方便以后的使用,可将这些LIB库分别复制到工程根目录下的LIB目录中。利用下面的批处理来快速获取:
copy ../pjlib/lib/*.lib *.lib
copy ../pjlib-util/lib/*.lib *.lib
copy ../pjnath/lib/*.lib *.lib
copy ../pjmedia/lib/*.lib *.lib
copy ../pjsip/lib/*.lib *.lib
copy ../third_party/lib/*.lib *.lib
若要编译例子程序,则设 samples 为活动工程,分别编译其Debug和Release版本。成功后,则会生成在目录 pjsip-apps/bin/samples 下
四、使用
1、为提高工程在不同PC上编译时的可移植性,要在工程选项(而非开发环境)中添加包含目录(当前假设应用程序目录和 pjproject 在同一目录下)
* 以下头文件目录放在 C/C++ / Preprocessor / Additional include directories 下:
../pjproject/pjlib/include,../pjproject/pjlib-util/include,../pjproject/pjnath/include,../pjproject/pjmedia/include,../pjproject/pjsip/include
* 以下LIB库目录放在 Link / General / Object/library modules 下:
../pjproject/lib/*vc6-debug.lib 或 ../pjproject/lib/*vc6-release.lib
2、在程序源文件中添加相应的头文件,根据实际需要添加,以下包含了PJ库导出的全部API
#include <pjlib.h>
#include <pjlib-util.h>
#include <pjnath.h>
#include <pjsip.h>
#include <pjsip_ua.h>
#include <pjsip_simple.h>
#include <pjsua-lib/pjsua.h>
#include <pjmedia.h>
#include <pjmedia-codec.h>
3、在工程选项中添加宏定义 PJ_WIN32=1,切记不能在源文件中添加
4、在工程选项中链接系统的Lib库,如 IPHlpApi.lib wsock32.lib ws2_32.lib ole32.lib dsound.lib
5、值得注意的是,发布不同版本需要依赖不同的底层库,如下所示
Debug: multithreaded, statically linked with LIBC,(i.e. the /MTd flag)
Release: multithreaded, dynamically linked with MSVCRT,(i.e. the /MD flag)
相关推荐
用pjsip编译出来的android例程,可以用于研究网络直拨
PJSIP c++编译及生成DLL方式 win10 x64 VS2019 PJSIP 音频通话编译流程
PJSIP官网,关于pjsip-android在CentOS下编译成功的一个VOIP demo,可实现简单的拨号,接听。android新手请多指教,正在学习开发基于android的软电话客户端。
包涵了centos7下面编译pjsip,支持视频所用的依赖库ffmpeg,x264,libyuv,sdl,yasm以及编译文档
window下使用VC6.0来编译pjsip开源代码和使用pjsip工程的方法简介
该资源详细说明了如何在Ubuntu16.04下编译生成支持视频的pjsip库,含pdf文档和所需的各个开源库。并包括SDL及 FFmpeg库是否安装成功的测试demo。
pjsip接口api中文说明pdf文档
PJSip2.9的编译文件
pjsua2是在Linux系统环境下编译出来的pjsip程序sample
已经编译好的pjsip库 , 但是版本比较低 , 基本功能都已经包含 , 初学者可以参考学习.
记录了编译PJSIP的完整过程,中间碰到SDL库不能正常使用的解决过程。
近期要开发一个windows基于QT 的PJSIP网络电话小项目,查了很多资料,均未有一个完整可编译运行的参考资料,经过几天的调试整理,终于搞定了这个小项目,同时把pjsip 2.8编译完成的库分享给大家,在H:\pjsip\...
使用 MicroSip 源码编译后,在录音配置界面虽然有 mp3 格式选项,但是实际录音后不会生成mp3 文件夹,而选择wav格式却可以正常生成 wav 文件。 经测试发现需要重新编译 pjsip 工程,加入 mp3 编码才可以。 这个是...
这是在mips平台上对pjsip的移植,去掉了一些没必要的功能,是将pjsip的相关接口编译成so的形式,应用层进行调用,可以在linux系统上直接编译通过,需要指定编译工具链和编译参数
编译的最新PJSIP android 上的实例,可以编译运行,内含pjsip库与openh264库,以及注册账号样例,可以进行视频通讯,可以作为学习使用
在ubuntu系统下编译pjsip和pjsua2库。可以给c,C++,python,java,ios,android等使用的文档。
pjsip 2.6 版本 源码工程,VS2015打开,通过修改后,开放视频功能,编译完通过自带的demo可以看到摄像头的画面
基于pjsip实现GBT28181协议,可以实现实时流获取、历史流获取。附带了添加了gbt28181扩展的pjsip源码
pjsip2.8+MicroSIP-3.19.8-src 源码 vs2013编译工程,至此视频。
PJSIP-Android平台编译后的Hello World 官方示例中Android平台的两个Hello World编译后项目,整个过程坑爹一坨坨。 Android平台官方文档页为: 编译环境 Ubuntu-14.04.1-LTS-i386 PJSIP-2.3 ndk-r9d-linux-x86 经验...