2012-03-08 72 views
1

我试图编译为iPhone模拟器PJSIP和得到的错误:PJSIP编译为iPhone模拟器

../include/pj/config_site_sample.h:322:1: warning: this is the location of the previous definition 
../src/pj/activesock.c: In function ‘activesock_create_iphone_os_stream’: 
../src/pj/activesock.c:146: error: ‘kCFStreamNetworkServiceType’ is unavailable (declared at /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFSocketStream.h:256) 
../src/pj/activesock.c:147: error: ‘kCFStreamNetworkServiceTypeVoIP’ is unavailable (declared at /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/System/Library/Frameworks/CFNetwork.framework/Headers/CFSocketStream.h:259) 

请帮助。

+0

绕过此错误...使用以下配置。 export DEVPATH =/Developer/Platforms/iPhoneSimulator.platform/Developer export CC = $ DEVPATH/usr/bin/gcc export CFLAGS =“ - O2 -m32 -miphoneos-version -min = 3.0”LDFLAGS =“ - O2 - m32“ 现在变得低于错误,无法编译所有库 ../src/pjmedia-videodev/ios_dev.m:66:错误:无法找到'AVCaptureVideoDataOutputSampleBufferDelegate'的协议声明 ../src/pjmedia-videodev /ios_dev.m:88:错误:预期说明符 - 限定符列表之前'AVCaptureSession' 如何绕过模拟器的视频? – 2012-03-09 03:52:33

+0

为了他人的利益: 确保你有正确的sdk和arch设置。我用下面的那些。 出口CFLAGS = “ - O2 -m32 -miphoneos版本分钟= 4.0” LDFLAGS = “ - O2 -m32” 出口IPHONESDK = iPhoneSimulator4.2.sdk 出口DEVPATH = /开发/平台/ iPhoneSimulator.platform /开发人员 export ARCH =“ - arch i686” 另外,build/rules.mak具有无效空格而不是空格(检查最后几行)是奇怪的。用标签替换空格,并做 $ rm pjlib/build/.pjlib * $ rm pjnath/build/.pjnath * 现在终于我得到了它的编译。 – 2012-03-10 17:00:12

回答

2

为了他人的利益:使用了trunk中的最新pjsip。 改变以下线的i686在configure_iphone

for archpath in `ls -d ${SDKPATH}/usr/lib/gcc/arm-apple-darwin*`; do 

for archpath in `ls -d ${SDKPATH}/usr/lib/gcc/i686-apple-darwin*`; do 

,并创建config_site.h(pjlib /包括/ PJ)低于线

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

确保您有正确的sdk和拱门设置。我用下面的那些。

export CFLAGS="-O2 -m32 -miphoneos-version-min=4.0" LDFLAGS="-O2 -m32" 
export IPHONESDK=iPhoneSimulator4.2.sdk 
export DEVPATH=/Developer/Platforms/iPhoneSimulator.platform/Developer 
export ARCH="-arch i686" 

还有一点很奇怪的是构建/ rules.mak具有无效空格代替制表符(检查最后几行)。替换选项卡上的空间和做

$ rm pjlib/build/.pjlib* 
$ rm pjnath/build/.pjnath* 

现在终于我知道了编译。

+0

遵循所有步骤,但仍然无效。 检查创建系统类型... I386-苹果darwin12.2.1 检查主机系统类型... i686的-苹果darwin10 检查目标系统类型... i686的-苹果darwin10 检查的i686,苹果darwin10 -gcc ... /Applications/Xcode.app/Contents/Developer/usr/bin 检查C编译器是否工作... no aconfigure:error:in'/ Users/thongchai/Documents/Projects/hlung_github/gossip/pjsip/source': aconfigure:错误:C编译器无法创建可执行文件 – Hlung 2013-01-17 08:30:42