在xcode4.2上为pjsip编译的麻烦

时间:2012-01-23 08:17:27

标签: iphone ios compilation xcode4.2 pjsip

当我在xcode 4.2上运行我的项目时,我得到了这种响应,缺少.o文件的31个错误

并且31错误看起来像这样

ld: warning: ignoring file ../pjproject-svn/pjlib/lib/libpj-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjlib-util/lib/libpjlib-util-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjnath/lib/libpjnath-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjmedia/lib/libpjmedia-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjsip/lib/libpjsip-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjsip/lib/libpjsip-simple-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjsip/lib/libpjsip-ua-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjsip/lib/libpjsua-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjmedia/lib/libpjmedia-codec-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/third_party/lib/libgsmcodec-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/pjmedia/lib/libpjmedia-audiodev-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/third_party/lib/libresample-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../pjproject-svn/third_party/lib/libg7221codec-arm-apple-darwin9.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7:
  "_pjsua_call_get_count", referenced from:
      -[SiphonApplication processCallState:] in SiphonApplication.o
      -[SiphonApplication callDisconnecting] in SiphonApplication.o
      -[CallViewController processCall:] in CallViewController.o
  "_pjmedia_tonegen_play_digits", referenced from:
      _sip_call_play_digits in dtmf.o
  "_pjsua_acc_get_info", referenced from:
      _on_reg_state in call.o
  "_pjsua_perror", referenced from:
      _sip_connect in call.o
      _sip_dial_with_uri in call.o
      _call_init_tonegen in dtmf.o
  "_pjsua_conf_disconnect", referenced from:
      _sip_ring_stop in ring.o
  "_pjsua_call_is_active", referenced from:
      -[CallViewController findNextCall] in CallViewController.o
  "_pj_pool_calloc", referenced from:
      _sip_call_play_digits in dtmf.o
      _pj_pool_zalloc in dtmf.o
  "_pjsua_acc_is_valid", referenced from:
      _sip_disconnect in call.o
  "_pjsua_call_reinvite", referenced from:
      -[CallViewController setHoldEnabled:] in CallViewController.o
  "_pjsua_media_config_default", referenced from:
      _sip_startup in call.o
  "_pjsua_create", referenced from:
      _sip_startup in call.o
  "_pjsua_acc_add", referenced from:
      _sip_connect in call.o
  "_pjsua_acc_config_default", referenced from:
      _sip_connect in call.o
  "_pj_log_get_level", referenced from:
      _sip_startup in call.o
      _on_call_state in call.o
      _on_incoming_call in call.o
      _on_mwi_info in call.o
      _sip_connect in call.o
      _sip_dial_with_uri in call.o
      _sip_manage_codec in call.o
      ...
  "_pjsua_call_set_user_data", referenced from:
      _call_init_tonegen in dtmf.o
      _sip_call_deinit_tonegen in dtmf.o
  "_pjsua_conf_connect", referenced from:
      _on_call_media_state in call.o
      _sip_ringback_start in ring.o
      _call_init_tonegen in dtmf.o
  "_pjsua_call_get_user_data", referenced from:
      _sip_call_play_digits in dtmf.o
      _sip_call_deinit_tonegen in dtmf.o
  "_pjsua_call_dial_dtmf", referenced from:
      _sip_call_play_digits in dtmf.o
  "_pjsua_pool_create", referenced from:
      _sip_startup in call.o
      -[CallViewController createCall:] in CallViewController.o
      _call_init_tonegen in dtmf.o
  "_pjmedia_tonegen_play", referenced from:
      _sip_ring_init in ring.o
  "_pj_pool_release", referenced from:
      _sip_cleanup in call.o
      -[CallViewController createCall:] in CallViewController.o
      _call_init_tonegen in dtmf.o
      _sip_call_deinit_tonegen in dtmf.o
  "_pj_get_version", referenced from:
      _sip_startup in call.o
  "_pjsua_call_hangup", referenced from:
      _sip_hangup in call.o
  "_pjsua_msg_data_init", referenced from:
      _sip_call_play_info_digits in dtmf.o
  "_pj_strdup_with_null", referenced from:
      -[CallViewController createCall:] in CallViewController.o
  "_pj_rand", referenced from:
      _sip_startup in call.o
  "_pjsua_media_transports_create", referenced from:
      _sip_startup in call.o
  "_pjsua_destroy", referenced from:
      _sip_cleanup in call.o
  "_pj_strerror", referenced from:
      -[SiphonApplication displayStatus:withTitle:] in SiphonApplication.o
  "_pjsua_verify_sip_url", referenced from:
      -[SiphonApplication application:handleOpenURL:] in SiphonApplication.o
      _sip_connect in call.o
      _sip_dial_with_uri in call.o
  "_pjsua_call_send_request", referenced from:
      _sip_call_play_info_digits in dtmf.o
  "_pjsua_call_get_max_count", referenced from:
      -[CallViewController findNextCall] in CallViewController.o
  "_pj_strdup2_with_null", referenced from:
      _sip_startup in call.o
      -[CallViewController createCall:] in CallViewController.o
  "_pjmedia_tonegen_stop", referenced from:
      _sip_call_play_digits in dtmf.o
  "_pjsua_acc_del", referenced from:
      _sip_disconnect in call.o
  "_pjmedia_port_destroy", referenced from:
      _sip_ring_deinit in ring.o
      _sip_call_deinit_tonegen in dtmf.o
  "_pjsua_transport_config_default", referenced from:
      _sip_startup in call.o
  "_pjsua_conf_adjust_rx_level", referenced from:
      -[CallViewController setMute:] in CallViewController.o
  "_pjsua_codec_set_priority", referenced from:
      _sip_manage_codec in call.o
  "_pjmedia_tonegen_create2", referenced from:
      _sip_ring_init in ring.o
  "_pjsua_logging_config_default", referenced from:
      _sip_startup in call.o
  "_pjmedia_tonegen_create", referenced from:
      _call_init_tonegen in dtmf.o
  "_pjsua_call_make_call", referenced from:
      _sip_dial_with_uri in call.o
  "_pjsua_transport_create", referenced from:
      _sip_startup in call.o
  "_pj_strdup3", referenced from:
      _sip_startup in call.o
  "_pj_pool_alloc", referenced from:
      _sip_connect in call.o
  "_pjsip_parse_uri", referenced from:
      -[CallViewController createCall:] in CallViewController.o
  "_pj_str", referenced from:
      _sip_connect in call.o
      _sip_dial_with_uri in call.o
      _sip_ring_init in ring.o
      -[CallViewController composeDTMF] in CallViewController.o
      _sip_call_play_digit in dtmf.o
      _sip_call_play_info_digit in dtmf.o
      _sip_call_play_info_digits in dtmf.o
      ...
  "_pjsua_init", referenced from:
      _sip_startup in call.o
  "_pj_log_1", referenced from:
      _sip_startup in call.o
      _on_call_state in call.o
      _on_incoming_call in call.o
      _sip_connect in call.o
      _sip_dial_with_uri in call.o
      _sip_manage_codec in call.o
  "_pjsua_call_get_info", referenced from:
      _on_call_state in call.o
      _on_call_media_state in call.o
      _on_incoming_call in call.o
      -[CallViewController timeout:] in CallViewController.o
      _call_init_tonegen in dtmf.o
  "_pj_log_3", referenced from:
      _on_mwi_info in call.o
  "_pjsua_conf_remove_port", referenced from:
      _sip_ring_deinit in ring.o
      _sip_call_deinit_tonegen in dtmf.o
  "_pjsua_config_default", referenced from:
      _sip_startup in call.o
  "_pj_log_5", referenced from:
      _sip_dial_with_uri in call.o
  "_pjsua_conf_add_port", referenced from:
      _sip_ring_init in ring.o
      _call_init_tonegen in dtmf.o
  "_pjsip_get_status_text", referenced from:
      -[SiphonApplication application:handleOpenURL:] in SiphonApplication.o
      -[SiphonApplication dialup:number:] in SiphonApplication.o
  "_pjsua_call_set_hold", referenced from:
      -[CallViewController setHoldEnabled:] in CallViewController.o
      -[CallViewController buttonClicked:] in CallViewController.o
  "_pjsua_start", referenced from:
      _sip_startup in call.o
  "_pjsua_call_answer", referenced from:
      _on_incoming_call in call.o
      _sip_answer in call.o
  "_pjmedia_tonegen_rewind", referenced from:
      _sip_ring_stop in ring.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
  

Ld Build / Siphon / Build / Products / Debug-iphoneos / Siphon.app / Siphon normal   的ARMv7       cd / Users / jaxtrinc / Desktop / Siphone / Siphon2       setenv IPHONEOS_DEPLOYMENT_TARGET 4.0       setenv PATH“/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin”       /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk   -L /用户/ jaxtrinc /桌面/ Siphone / Siphon2 /编译/虹吸/编译/产品/调试-的iPhoneOS   -L ../pjproject -svn / pjlib / lib -L ​​../ pjproject -svn / pjsip / lib -L ​​../ pjproject -svn / pjmedia / lib -L ​​../ pjproject-svn / pjlib-util / lib -L ../pjproject -svn / pjnath / lib -L ​​../ pjproject -svn / third_party / lib -L ​​../ pjproject -svn / pjmedia / lib -L ​​../ pjproject -svn / third_party / lib -L /Users/jaxtrinc/Desktop/Siphone/Siphon2/../pjproject-svn/third_party/lib   -L / Users / jaxtrinc / Desktop / Siphone / Siphon2 /../ pjproject-svn / pjmedia / lib -F / Users / jaxtrinc / Desktop / Siphone / Siphon2 / Build / Siphon / Build / Products / Debug-iphoneos   -filelist /Users/jaxtrinc/Desktop/Siphone/Siphon2/Build/Siphon/Build/Intermediates/Siphon.build/Debug-iphoneos/Siphon.build/Objects-normal/armv7/Siphon.LinkFileList   -dead_strip -framework Foundation -framework UIKit -miphoneos-version-min = 4.0 -framework SystemConfiguration -framework UIKit -framework AddressBookUI -framework AddressBook -framework   Foundation -framework AudioToolbox -lpj-arm-apple-darwin9   -lpjlib-util-arm-apple-darwin9 -lpjnath-arm-apple-darwin9 -lpjmedia-arm-apple-darwin9 -lpjsip-arm-apple-darwin9 -lpjsip-simple-arm-apple-darwin9 -lpjsip-ua-arm -apple-darwin9 -lpjsua-arm-apple-darwin9 -framework CoreGraphics -lsqlite3.0 -lpjmedia-codec-arm-apple-darwin9 -lgsmcodec-arm-apple-darwin9 -framework CFNetwork -lpjmedia-audiodev-arm-apple-darwin9 -lresample-arm-apple-darwin9 -lg7221codec-arm-apple-darwin9 -framework IOKit -o   /Users/jaxtrinc/Desktop/Siphone/Siphon2/Build/Siphon/Build/Products/Debug-iphoneos/Siphon.app/Siphon

我还有链接器错误,如

ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:8)

典型的iPhone项目针对三种不同的架构进行编译:{{1​​}}和armv6(两代iPhone处理器)和armv7(用于模拟器)。在当前的构建运行中,您是i386的最少构建。它是最重要的架构,因为Apple只接受至少具有这种架构的构建(如果我没有弄错的话)。

不幸的是,您链接的库不包含此体系结构的代码。 (这就是为什么你在顶部收到警告的原因)。以下错误消息确认它确实是由 pjsip pjmedia 库引起的。

我不知道您是在某处下载了这些库还是从源代码构建它们。但是您需要至少为armv7构建的库。更好的方法是为所有架构构建库。

您最好按照使用入门页面的section进行操作,该页面展示了如何为多种体系结构构建。