社区
移动开发其他问题
帖子详情
求教linux下使用pjsip,怎么编译c程序链接该库?
abclwy
2012-01-10 01:04:34
初学pjsip,已安装,测试其中的程序怎么编译呀?求教,谢了!
...全文
689
3
打赏
收藏
求教linux下使用pjsip,怎么编译c程序链接该库?
初学pjsip,已安装,测试其中的程序怎么编译呀?求教,谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jy12421732
2012-07-20
打赏
举报
回复
当前使用的 pjproject 版本为1.5.5,开发环境为VC6,其它VS高级版本应该类似
TAG: SIP pjsip
当前使用的 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://www.luyouren.com
[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)
abclwy
2012-07-09
打赏
举报
回复
呵呵,帖子发的很早了,已解决了,也是这么做的,谢谢啊!
liuyong_name
2012-07-03
打赏
举报
回复
pjproject-1.8.10.tar.bz2 解压到目录/home/pjsip。
# cd /home
# mkdir pjsip
# tar jxvf <pjproject-1.8.10.tar.bz2> -C /home/pjsip
在pjlib/include/pj 目录添加config_site.h文件,无需任何内容。
# cd /home/pjsip/pjproject-1.8.10/pjlib/include/pj
# vi config_site.h
开始编译# cd /home/pjsip/pjproject-1.8.10
# ./configure
# make dep
# make 编译失败报如下错误:In file included from src/pa_linux_alsa.c:1:
src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c: ?úoˉêy ??PaAlsaStreamComponent_FinishConfigure?ˉ ?D£o
src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c:1367: ′í?ó£o??SND_PCM_TSTAMP_ENABLE?ˉ ?′éù?÷ (?ú′?oˉêy?úμúò?′?ê1ó?)
src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c:1367: ′í?ó£o(?′ê1?úò???oˉêy?ú?à′?3???£??????′éù?÷μ?±êê?·??ú??
src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c:1367: ′í?ó£o?ù?úμ?oˉêy?ú??±¨??ò?′??£)
make[3]: *** [output/libportaudio-i686-pc-linux-gnu/pa_linux_alsa.o] ′í?ó 1
make[3]: Leaving directory `/home/mzxue/pjproject-1.8.10/third_party/build/portaudio'
make[2]: *** [libportaudio] ′í?ó 2
make[2]: Leaving directory `/home/mzxue/pjproject-1.8.10/third_party/build/portaudio'
make[1]: *** [all] ′í?ó 1
make[1]: Leaving directory `/home/mzxue/pjproject-1.8.10/third_party/build'
make: *** [all] ′í?ó 1
然后修改文件:pjproject-1.8.10\third_party\portaudio\src\hostapi\alsa\pa_linux_alsa.c 在函数PaAlsaStreamComponent_FinishConfigure中将:
SND_PCM_TSTAMP_ENABLE 改为 SND_PCM_TSTAMP_MMAP
然后再重新编译即可
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-03/33458.htm
pjsip
在
linux
下
编译
视频支持需要的依赖库
包涵了centos7下面
编译
pjsip
,支持视频所用的依赖库ffmpeg,x264,libyuv,sdl,yasm以及
编译
文档
PJSIP
编译
出来的android例程
用
pjsip
编译
出来的android例程,可以用于研究网络直拨
FFmpeg4.3系列之28:SIP+eXosip+
pjsip
小白入门
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告: 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。我将带领大家一起来学习:学习sip协议的基本原理、流程、结构;
编译
开源库源码osip,eXosip,
pjsip
(包括windows和
Linux
两套环境);
使用
eXosip或
pjsip
进行案例实战;具体内容包括: 1.sip协议讲解,包括原理、结构、协议内容、流程分析等。2.osip与eXosip的源码
编译
,
使用
eXosip进行案例实战并详解流程。3.
pjsip
的源码
编译
,
使用
pjsip
进行案例实战并详解流程。
VC6 中
编译
使用
pjsip
的工程
window下
使用
VC6.0来
编译
pjsip
开源代码和
使用
pjsip
工程的方法简介
PJSIP
2.7.1
编译
好的一个demo 在android studio上实现
PJSIP
官网,关于
pjsip
-android在CentOS下
编译
成功的一个VOIP demo,可实现简单的拨号,接听。android新手请多指教,正在学习开发基于android的软电话客户端。
移动开发其他问题
790
社区成员
13,285
社区内容
发帖
与我相关
我的任务
移动开发其他问题
移动平台 其他移动相关
复制链接
扫一扫
分享
社区描述
移动平台 其他移动相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章