2012-03-08 66 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