の動的ライブラリを作成することはできません。しかし、私たちは、迅速なプロジェクト内で使用できるようにダイナミックライブラリを作成したいと考えています。は、我々は脂肪静的ライブラリにPJSIPをコンパイルするスクリプトをしましたPJSIP
アップデート2016年9月9日:
"--enable-共有" オプションを使用してPJSIPをコンパイル、LIBの のほとんどが正しく構築されています。 これらが正しいのに対しただし、いくつかのLIBSのではなく、arm64
libg7221codec.dylib is architecture: x86_64
libgsmcodec.dylib is architecture: x86_64
libilbccodec.dylib is architecture: x86_64
libresample.dylib is architecture: x86_64
libyuv.dylib is architecture: x86_64
のこのケースで x86_64版、間違ったアーキテクチャ用にコンパイルされています
libpjsip.dylib is architecture: arm64
libpjsua.dylib is architecture: arm64
libpjsua2.dylib is architecture: arm64
私たちは建物を起動すると:
+ ./configure-iphone --enable-shared
+ make dep
+ make clean
alが正しく完了しますが
+ make
これらの警告を生成します。
ld: warning: -undefined dynamic_lookup is deprecated on iOS
ld: warning: -flat_namespace is deprecated on iOS
と、このように見えるの警告がたくさん:
ld: warning: ignoring file
output/libilbccodec-arm64-apple-darwin_ios/iLBC_decode.o, file was built
for unsupported file format (0xCF 0xFA 0xED 0xFE 0x0C 0x00 0x00 0x01 0x00
0x00 0x00 0x00 0x01 0x00 0x00 0x00) which is not the architecture being
linked (x86_64): output/libilbccodec-arm64-apple-darwin_ios/iLBC_decode.o
ld: warning: ignoring file
output/libg7221codec-arm64-apple-darwin_ios/common/common.o, file was built
for unsupported file format (0xCF 0xFA 0xED 0xFE 0x0C 0x00 0x00 0x01 0x00
0x00 0x00 0x00 0x01 0x00 0x00 0x00) which is not the architecture being
linked (x86_64): output/libg7221codec-arm64-apple-darwin_ios/common/common.o
と:
ld: warning: ignoring file /pjsip/src/third_party/lib/libg7221codec.dylib,
file was built for x86_64 which is not the architecture being linked
(arm64): /pjsip/src/third_party/lib/libg7221codec.dylib
いくつかのlibがコンパイルされている理由かもしれない何正しい アーキテクチャ用であり、一部はありませんか?どのように私はこれを修正することができますか?背景情報について
、 の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 iPhoneOS9.3.sdk
configure-iphone: CC is not specified, choosing
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
configure-iphone: CXX is not specified, using
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
のconfigure-iphone:
CC =
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CXX =
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
SDKPATH =
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
CFLAGS = -miphoneos-version-min=9.0 -DPJ_SDK_NAME="\"iPhoneOS9.3.sdk\""
-arch arm64 -isysroot
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
LDFLAGS = -O2 -arch arm64 -isysroot
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk
-framework AudioToolbox -framework Foundation
AR =
/Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/../../../Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-static -o
RANLIB = echo ranlib
ARCH = arm64
初期過程::のenv VARSと./aconfigureを呼び出します
我々がこれまで持っているプロセスは、次のとおりです。
- はPJSIPはbashスクリプトと1つのアーキテクチャのための脂肪静的ライブラリを作成します。
- libtoolでダイナミックライブラリを作成しようとすると、すべてがlipoとarで分離されたoファイルに展開されます。
しかし、他のフレームワークへのリンクには問題があります。これが事実ですか、それとも何か間違ったことをしますか?
これは、詳細にステップ3:
私たちは、1つのフォルダ内に1つのアーキテクチャのすべてのファイルを持っています。コマンドを実行した後、私たちの出力の
libtool -dynamic *.o -o pjsip.dylib -framework AudioToolbox -framework Foundation -framework AVFoundation -framework CoreFoundation -lSystem -ios_version_min 9.0
スタート:その後、我々は、このlibtoolのコマンドを実行します
ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures
Undefined symbols for architecture armv7s:
"_AVAudioSessionCategoryPlayAndRecord", referenced from:
_ca_factory_init in coreaudio_dev.o
"_AVAudioSessionModeVoiceChat", referenced from:
_ca_factory_init in coreaudio_dev.o
"_AudioComponentFindNext", referenced from:
_ca_factory_init in coreaudio_dev.o
_ca_stream_set_cap in coreaudio_dev.o
"_AudioComponentGetDescription", referenced from:
_ca_stream_get_cap in coreaudio_dev.o
"_AudioComponentInstanceDispose", referenced from:
_ca_stream_destroy in coreaudio_dev.o
"_AudioComponentInstanceNew", referenced from:
_create_audio_unit in coreaudio_dev.o
"_AudioConverterDispose", referenced from:
_ca_stream_destroy in coreaudio_dev.o
_ilbc_dealloc_codec in ilbc.o
"_AudioConverterFillComplexBuffer", referenced from:
_resample_callback in coreaudio_dev.o
_ilbc_codec_encode in ilbc.o
_ilbc_codec_decode in ilbc.o
_ilbc_codec_recover in ilbc.o
"_AudioConverterNew", referenced from:
_ilbc_codec_open in ilbc.o
"_AudioConverterReset", referenced from:
_ca_stream_start in coreaudio_dev.o
"_AudioFormatGetProperty", referenced from:
_ilbc_codec_open in ilbc.o
"_AudioOutputUnitStart", referenced from:
_ca_stream_start in coreaudio_dev.o
"_AudioOutputUnitStop", referenced from:
_ca_stream_start in coreaudio_dev.o
_ca_stream_stop in coreaudio_dev.o
"_AudioUnitInitialize", referenced from:
_create_audio_unit in coreaudio_dev.o
"_AudioUnitRender", referenced from:
_resample_callback in coreaudio_dev.o
_input_callback in coreaudio_dev.o
"_AudioUnitSetProperty", referenced from:
_create_audio_unit in coreaudio_dev.o
"_AudioUnitUninitialize", referenced from:
_ca_stream_destroy in coreaudio_dev.o
"_CFArrayGetCount", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFArrayGetValueAtIndex", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFDataGetBytePtr", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFHostCreateWithName", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFHostGetAddressing", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFHostStartInfoResolution", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_CFReadStreamClose", referenced from:
_activesock_destroy_iphone_os_stream in activesock.o
"_CFReadStreamOpen", referenced from:
_activesock_create_iphone_os_stream in activesock.o
"_CFReadStreamSetProperty", referenced from:
_activesock_create_iphone_os_stream in activesock.o
"_CFRelease", referenced from:
_activesock_destroy_iphone_os_stream in activesock.o
_pj_getaddrinfo in addr_resolv_sock.o
"_CFStreamCreatePairWithSocket", referenced from:
_activesock_create_iphone_os_stream in activesock.o
"_CFStringCreateWithCStringNoCopy", referenced from:
_pj_getaddrinfo in addr_resolv_sock.o
"_Gsm_LPC_Analysis", referenced from:
_Gsm_Coder in code.o
"_Gsm_Preprocess", referenced from:
_Gsm_Coder in code.o
"_OBJC_CLASS_$_AVAudioSession", referenced from:
objc-class-ref in coreaudio_dev.o
"_OBJC_CLASS_$_UIDevice", referenced from:
objc-class-ref in os_info_iphone.o
"__DefaultRuneLocale", referenced from:
__Z8__istypeim in siptypes.o