PJSIP2.5.1编译
2016-07-19 15:41
393 查看
此文记录pjsip编译过程中遇到的一些问题以及解决方法。
首先参考一下www.pjsip.org官网的Getting Started基础
一、MAC下编译
主要为IPHONE进行编译,包括模拟器版本和真机版本,baidu出来按如下网址进行:
http://www.tuicool.com/articles/Z7VjMn,里面的脚本整的不错,比较方便
这里写了i386,armv7,armv7s,arm64的编译,但是无x86_64版本
编译x86_64版本
其他相同。
在2.6版本里生成的文件名和2.5不同,故里面的合并脚本需要修改,需要将每个arch版本生产的库文件统一改名成一样的名称
二、linux编译
问题1:ALSA的支持,无ALSA,confiure是检测不到,编译找不到ALSA的头文件
解答1:由于只需要做服务器端代理,不需要声卡支持,在config_site.h中加上#define PJMEDIA_AUDIO_DEV_HAS_ALSA 0
三、windows编译
问题1:srtp.h中找不到stdint.h
解答1:
#ifdef _MSC_VER
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
问题2:call.cpp中
MathStat::MathStat()
: n(0), max(0),min(0),last(0), mean(0)
{
}
error:大致是说把max当成宏了,syntax error
解答2:
MathStat::MathStat()
: n(0), last(0), mean(0)
{
max = 0;
min = 0;
}
四、ipv6的支持
2.5.5以后支持ipv6,我现在用了2.6,2.6编译生成的文件名称和2.5略有不同
1、https://trac.pjsip.org/repos/wiki/IPv6#IPv6Supportinpjsip
#define PJ_HAS_IPV6 1
2、http://www.cnblogs.com/HemJohn/p/5590483.html
getaddrinfo获取到本地地址,判断是否是ipv6格式,即":"分隔的为v6网络
首先参考一下www.pjsip.org官网的Getting Started基础
一、MAC下编译
主要为IPHONE进行编译,包括模拟器版本和真机版本,baidu出来按如下网址进行:
http://www.tuicool.com/articles/Z7VjMn,里面的脚本整的不错,比较方便
这里写了i386,armv7,armv7s,arm64的编译,但是无x86_64版本
编译x86_64版本
$ export DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer $ ARCH="-arch x86_64" CFLAGS="-O2 -m64 -mios-simulator-version-min=5.0" LDFLAGS="-O2 -m64 -mios-simulator-version-min=5.0" ./configure-iphone $ make dep && make clean && make
其他相同。
在2.6版本里生成的文件名和2.5不同,故里面的合并脚本需要修改,需要将每个arch版本生产的库文件统一改名成一样的名称
二、linux编译
问题1:ALSA的支持,无ALSA,confiure是检测不到,编译找不到ALSA的头文件
解答1:由于只需要做服务器端代理,不需要声卡支持,在config_site.h中加上#define PJMEDIA_AUDIO_DEV_HAS_ALSA 0
三、windows编译
问题1:srtp.h中找不到stdint.h
解答1:
#ifdef _MSC_VER
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
问题2:call.cpp中
MathStat::MathStat()
: n(0), max(0),min(0),last(0), mean(0)
{
}
error:大致是说把max当成宏了,syntax error
解答2:
MathStat::MathStat()
: n(0), last(0), mean(0)
{
max = 0;
min = 0;
}
四、ipv6的支持
2.5.5以后支持ipv6,我现在用了2.6,2.6编译生成的文件名称和2.5略有不同
1、https://trac.pjsip.org/repos/wiki/IPv6#IPv6Supportinpjsip
#define PJ_HAS_IPV6 1
tp_type = PJSIP_TRANSPORT_TCP6; status = pjsua_transport_create(tp_type, &tp_cfg, &udp6_tp_id); if (status != PJ_SUCCESS)
acc_cfg.transport_id = udp6_tp_id;
2、http://www.cnblogs.com/HemJohn/p/5590483.html
getaddrinfo获取到本地地址,判断是否是ipv6格式,即":"分隔的为v6网络
相关文章推荐
- 绝大部分 Android 手电筒应用需要大量权限
- 这些看似合法的 iPhone Lightning 数据线将劫持您的电脑
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 我的iPhone桌面
- 解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
- 三种检测iPhone/iPad设备方向的方法
- js实现iPhone界面风格的单选框和复选框按钮实例
- javascript实现根据iphone屏幕方向调用不同样式表的方法
- android Gallery组件实现的iPhone图片滑动效果实例
- Android仿iphone自定义滚动选择器
- js判断手机端(Android手机还是iPhone手机)
- 使用Objective-C获取IPHONE手机IMSI序列号
- 探讨Android 的屏幕滚动操作不如 iPhone 流畅顺滑的原因
- iphone的safari浏览器中实现全屏浏览的方法
- 禁止iPhone Safari video标签视频自动全屏的办法
- 开源操作系统和必备工具网站收集
- Object-c Archiving归档
- 西蒙iphone-OpenGL ES教程英文原帖地址以及实例代码