9

当我在 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/Users/jaxtrinc/Desktop/Siphone/Siphon2/Build/Siphon/Build/Products/Debug-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)

谁能帮我解决这个问题?

4

1 回答 1

8

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

不幸的是,您链接的库不包含此架构的代码。(这就是为什么您会在顶部收到警告)。以下错误消息确认它确实是由pjsippjmedia库引起的。

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

您最好遵循入门页面的这一部分,该部分展示了如何为多种架构构建。

于 2012-01-23T12:18:16.850 回答