为 iOS 4.0 编译 pjsip

Posted

技术标签:

【中文标题】为 iOS 4.0 编译 pjsip【英文标题】:Compiling pjsip for iOS 4.0 【发布时间】:2010-07-15 00:08:59 【问题描述】:

我在 时遇到了问题。

我正在使用来自 SVN 的最新中继版本,并且不断收到 portaudio 错误。使用 piedmont 无线指南时:http://www.piemontewireless.net/PJSip155_and_iPhoneSDK312 我的 build.mak 文件中出现缺少分隔符错误,这表明存在空格/制表符错误,但我终生找不到它。

根据 pjsip 邮件列表,您应该能够为 ios 4.0 编译开箱即用,但我收到此错误:

 ../src/pjmedia-audiodev/errno.c:23:26: error: portaudio.h: No such file or directory
../src/pjmedia-audiodev/errno.c: In function ‘pjmedia_audiodev_strerror’:
../src/pjmedia-audiodev/errno.c:104: warning: implicit declaration of function ‘Pa_GetErrorText’
make[2]: *** [output/pjmedia-audiodev-arm-apple-darwin9/errno.o] Error 1
make[1]: *** [pjmedia-audiodev] Error 2

我会继续努力,但我们将不胜感激。

编辑:我确实有 portaudio.h

【问题讨论】:

上次我检查 pjsip 我记得 portaudio 是通过构建中的单独存储库拉入的,但我可能错了。你检查过你是否真的得到了 portaudio.h 吗? 是的,portaudio.h 存在于系统中,这是最让我感到奇怪的地方。在 third_party 文件夹中。 code.google.com/p/siphon/issues/detail?id=364 表示 iPhone 操作系统不支持 portaudio。评论说看维基或补丁,但快速浏览我没有看到修复。希望这会帮助您朝着正确的方向前进。 【参考方案1】:

您缺少的具体步骤是将 config_site.h 文件放在正确的位置。

pjlib/include/pj/config_site.h

它需要包含以下内容:

#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>

因此配置将避免不需要或不会为 iPhone 中的 arm 芯片编译的库。

添加后重新开始:

./configure-iphone

然后

make dep && make clean && make

【讨论】:

【参考方案2】:
./configure-iphone

SVN 新鲜出炉

Configurations for current target have been written to 'build.mak', and 'os-auto.mak' in various build directories, and pjlib/include/pj/compat/os_auto.h.

Further customizations can be put in:
  - 'user.mak'
  - 'pjlib/include/pj/config_site.h'

The next step now is to run 'make dep' and 'make'.

Done configuring for iPhoneOS4.2.sdk

不应该 ./configure-iphone setup pjlib/include/pj/config_site.h

作为

#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>

感谢@Schroedinger 的修复

【讨论】:

以上是关于为 iOS 4.0 编译 pjsip的主要内容,如果未能解决你的问题,请参考以下文章

PJSIP-iOS源码编译

为所有体系结构编译PJSIP 2.5库

为 Xcode 4.3.2 和 SDK 5.1 编译 pjsip 2 时出错

尝试在 Xcode 上运行时 PJSIP 出错

PJSIP iOS 错误

ubuntu下PjSip2.10编译 for android