Compile PJSIP for iOS7

2019-04-08 15:30发布

问题:

I am trying to compile PJSIP2.1.0 for iOS on Mac 10.9.(Xcode 5.0). But I'm getting some errors when I run ./configure-iphone.

Below are the errors,

configure-iphone: DEVPATH is not specified, using /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
configure-iphone: IPHONESDK is not specified, choosing iPhoneOS7.0.sdk
ls: /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/usr/lib/gcc/arm-apple-darwin*: No such file or directory
configure-iphone error: unable to find gcc for iPhoneOS7.0.sdk. If you think you have the right gcc, set the full path in CC environment variable.` 

Is anybody can help me? Thanks

But now, i do something follow Compiling pjsip current trunk under iOS 5.0 GM Fails i'm getting other errors.

Below are the errors

ailks-mbp:pjproject-2.1.0 ailk$ ./configure-iphone 
configure-iphone: DEVPATH is not specified, using    /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
configure-iphone: IPHONESDK is not specified, choosing iPhoneOS7.0.sdk
configure-iphone: CXX is not specified, using /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-g++-4.2
configure-iphone: calling ./aconfigure with env vars:
CC = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
CXX = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-g++-4.2
SDKPATH = /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
CFLAGS = -O2 -Wno-unused-label -DPJ_SDK_NAME="\"iPhoneOS7.0.sdk\""  -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk
LDFLAGS = -O2  -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -framework AudioToolbox -framework Foundation
AR = /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool -static -o
RANLIB = echo ranlib
checking build system type... i386-apple-darwin13.0.0
checking host system type... arm-apple-darwin10
checking target system type... arm-apple-darwin10
checking for arm-apple-darwin10-gcc...   /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
checking whether the C compiler works... no
aconfigure: error: in `/Users/ailk/Documents/开源库/pjproject-2.1.0':
aconfigure: error: C compiler cannot create executables
See `config.log' for more details

and below is the config.log

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by pjproject aconfigure 2.x, which was
generated by GNU Autoconf 2.69.  Invocation command line was

$ ./aconfigure --host=arm-apple-darwin10 --disable-sdl

## --------- ##
## Platform. ##
## --------- ##

hostname = ailks-mbp.ailk.com
uname -m = x86_64
uname -r = 13.0.0
uname -s = Darwin
uname -v = Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-   2422.1.72~6/RELEASE_X86_64

/usr/bin/uname -p = i386
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu- 2422.1.72~6/RELEASE_X86_64
Kernel configured for up to 4 processors.
2 processors are physically available.  
4 processors are logically available. 
Processor type: i486 (Intel 80486)  
Processors active: 0 1 2 3 
Primary memory available: 4.00 gigabytes
Default processor set: 161 tasks, 771 threads, 4 processors
Load average: 2.13, Mach factor: 2.37
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /usr/local/bin


## ----------- ##
## Core tests. ##
## ----------- ##

aconfigure:2355: checking build system type
aconfigure:2369: result: i386-apple-darwin13.0.0
aconfigure:2389: checking host system type
aconfigure:2402: result: arm-apple-darwin10
aconfigure:2422: checking target system type
aconfigure:2435: result: arm-apple-darwin10
aconfigure:2483: checking for arm-apple-darwin10-gcc
aconfigure:2510: result: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-   apple-darwin10-llvm-gcc-4.2
aconfigure:2779: checking for C compiler version
aconfigure:2788: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 --version >&5
./aconfigure: line 2790: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2: No such file or directory
aconfigure:2799: $? = 127
aconfigure:2788: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -v >&5
./aconfigure: line 2790: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2: No such file or directory
aconfigure:2799: $? = 127
aconfigure:2788: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -V >&5
./aconfigure: line 2790: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2: No such file or directory
aconfigure:2799: $? = 127
aconfigure:2788: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -qversion >&5
./aconfigure: line 2790: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2: No such file or directory
aconfigure:2799: $? = 127
aconfigure:2819: checking whether the C compiler works
aconfigure:2841: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple- darwin10-llvm-gcc-4.2 -O2 -Wno-unused-label -DPJ_SDK_NAME="\"iPhoneOS7.0.sdk\""  -isysroot  /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS 7.0.sdk  -O2  -isysroot    /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -framework AudioToolbox -framework Foundation conftest.c  >&5
./aconfigure: line 2843: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-   apple-darwin10-llvm-gcc-4.2: No such file or directory
aconfigure:2845: $? = 127
aconfigure:2883: result: no
aconfigure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "pjproject"
| #define PACKAGE_TARNAME "pjproject"
| #define PACKAGE_VERSION "2.x"
| #define PACKAGE_STRING "pjproject 2.x"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
aconfigure:2888: error: in `/Users/ailk/Documents/开源库/pjproject-2.1.0':
aconfigure:2890: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=i386-apple-darwin13.0.0
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-    darwin10-llvm-gcc-4.2
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-O2 -Wno-unused-label -DPJ_SDK_NAME="\"iPhoneOS7.0.sdk\""  -    isysroot     /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk'
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=set
ac_cv_env_CPP_value='/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2  -E -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk'
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-    darwin10-llvm-g++-4.2
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value='-O2  -isysroot     /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -framework AudioToolbox -framework Foundation'
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=arm-apple-darwin10
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=arm-apple-darwin10
ac_cv_prog_CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
ac_cv_target=arm-apple-darwin10

## ----------------- ##
## Output variables. ##
## ----------------- ##

AR='/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool -static -o'
CC='/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2'
CC_CFLAGS=''
CC_DEF=''
CC_INC=''
CC_OPTIMIZE=''
CC_OUT=''
CFLAGS='-O2 -Wno-unused-label -DPJ_SDK_NAME="\"iPhoneOS7.0.sdk\""  -isysroot     /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk'
CPP='/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2  -E -isysroot     /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk'
CPPFLAGS=''
CXX='/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-g++-4.2'
CXXFLAGS='-O2 -Wno-unused-label -DPJ_SDK_NAME="\"iPhoneOS7.0.sdk\""  -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk '
DEFS=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
GREP=''
LD=''
LDFLAGS='-O2  -isysroot     /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -framework AudioToolbox -framework Foundation'
LDOUT=''
LIBEXT2=''
LIBEXT=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
OBJEXT=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME='pjproject'
PACKAGE_STRING='pjproject 2.x'
PACKAGE_TARNAME='pjproject'
PACKAGE_URL=''
PACKAGE_VERSION='2.x'
PATH_SEPARATOR=':'
PKG_CONFIG=''
RANLIB='echo ranlib'
SAVED_PKG_CONFIG_PATH=''
SDL_CONFIG=''
SHELL='/bin/sh'
ac_build_mak_vars=''
ac_cross_compile=''
ac_ct_CC=''
ac_ct_CXX=''
ac_external_gsm=''
ac_external_pa=''
ac_external_speex=''
ac_ffmpeg_cflags=''
ac_ffmpeg_ldflags=''
ac_has_ffmpeg=''
ac_host=''
ac_ios_cflags=''
ac_linux_poll=''
ac_main_obj=''
ac_no_g711_codec=''
ac_no_g7221_codec=''
ac_no_g722_codec=''
ac_no_gsm_codec=''
ac_no_ilbc_codec=''
ac_no_l16_codec=''
ac_no_large_filter=''
ac_no_opencore_amrnb=''
ac_no_opencore_amrwb=''
ac_no_silk=''
ac_no_small_filter=''
ac_no_speex_aec=''
ac_no_speex_codec=''
ac_no_ssl=''
ac_os_objs=''
ac_pa_cflags=''
ac_pa_use_alsa=''
ac_pa_use_oss=''
ac_pjdir=''
ac_pjmedia_snd=''
ac_pjmedia_video=''
ac_pjmedia_video_has_ios=''
ac_pjmedia_video_has_qt=''
ac_qt_cflags=''
ac_resample_dll=''
ac_sdl_cflags=''
ac_sdl_ldflags=''
ac_shlib_suffix=''
ac_v4l2_cflags=''
ac_v4l2_ldflags=''
bindir='${exec_prefix}/bin'
build='i386-apple-darwin13.0.0'
build_alias=''
build_cpu='i386'
build_os='darwin13.0.0'
build_vendor='apple'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='arm-apple-darwin10'
host_alias='arm-apple-darwin10'
host_cpu='arm'
host_os='darwin10'
host_vendor='apple'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libcrypto_present=''
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
libssl_present=''
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
opencore_amrnb_h_present=''
opencore_amrnb_present=''
opencore_amrwb_dec_h_present=''
opencore_amrwb_dec_present=''
opencore_amrwb_enc_h_present=''
opencore_amrwb_enc_present=''
openssl_h_present=''
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
silk_h_present=''
silk_present=''
sysconfdir='${prefix}/etc'
target='arm-apple-darwin10'
target_alias=''
target_cpu='arm'
target_os='darwin10'
target_vendor='apple'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "pjproject"
#define PACKAGE_TARNAME "pjproject"
#define PACKAGE_VERSION "2.x"
#define PACKAGE_STRING "pjproject 2.x"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""

aconfigure: exit 77

Thank you for your help.

回答1:

I struggled with this issue a few day ago...

the getting started guide, here, helped me and this post on SO was very helpful.

when i downloaded the library from the getting started guide it wouldn't compile until i dl the library from the link provided to the svn repository in the SO post i mentioned above

svn co http://svn.pjsip.org/repos/pjproject/trunk  pjproject

after i got the library from there i just made sure the command line tools were installed. you can check in xcode-->prefrences--> downloads and than just create "config_site.h" like 0xbeefdead pointed out in his answer. the last thing was to run the ./configure-iphone and that was it.

i'm running osx 10.8.5 9 (xcode 5) and my device is 4s. For iPhone 5, use armv7s architecture as mentioned in the getting started guide

hope this helps



回答2:

Step 1: As documentation says. Add following lines by creating "config_site.h". Refer documentation if you have problem.

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

Step 2: Add following line in "configure-iphone" file to compile for

For armv7s

ARCH='-arch armv7s' CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc

For armv7

ARCH='-arch armv7' CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc

For simulator

ARCH='-arch i386' CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/ IPHONESDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

I am still struggling to build for "armv6". Any suggestions ?

I am using pjproject-2.1.0



回答3:

Your CC environment variable points to /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 and, from config.log, it does not exist.

You should check your AMR builder path and update your environment.



回答4:

Try This

In Terminal run “xcrun -find -sdk iphoneos gcc” and copy the output and place after the CC so for my case it goes as

export CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc
export ARCH='-arch armv7s'
./configure-iphone


回答5:

For Simulator, mostly as 0xbeefdead mentioned:

ARCH='-arch i386'
DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
CC=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc
IPHONESDK=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk
SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

With "-miphoneos-version-min=7.0" added CFLAGS/LDFLAGS:

# Default CFLAGS if it's not specified
if test "$CFLAGS" = ""; then
  CFLAGS="-O2 -Wno-unused-label -miphoneos-version-min=7.0"
fi

# Default LDFLAGS if it's not specified
if test "$LDFLAGS" = ""; then
  LDFLAGS="-O2 -miphoneos-version-min=7.0"
fi