7

我正在尝试在使用pjsip的 xcode 中制作一个 iphone 应用程序。问题是我不知道如何链接库。这是我第一次使用其他库,所以可能我做错了什么,我只是不知道是什么。:(

我在 mac os x 的这个文件夹中有 ARM 版本的库。/用户/kudorgyozo/pjsip_iphone

在 Xcode 中:我指定了库和标头搜索路径,如下所示:

包括:

/Users/kudorgyozo/pjsip_iphone/pjlib/include /Users/kudorgyozo/pjsip_iphone/pjlib-util/include /Users/kudorgyozo/pjsip_iphone/pjmedia/include /Users/kudorgyozo/pjsip_iphone/pjnath/include /Users/kudorgyozo/pjsip_iphone/pjsip /包括

对于图书馆:

/Users/kudorgyozo/pjsip_iphone/pjlib/lib /Users/kudorgyozo/pjsip_iphone/pjlib-util/lib /Users/kudorgyozo/pjsip_iphone/pjmedia/lib /Users/kudorgyozo/pjsip_iphone/pjnath/lib /Users/kudorgyozo/pjsip_iphone/pjsip /lib

然后使用“其他链接器标志”:

-lpj-arm-apple-darwin9 -lpjlib-util-arm-apple-darwin9 -lpjmedia-arm-apple-darwin9 -lpjmedia-audiodev-arm-apple-darwin9 -lpjmedia-codec-arm-apple-darwin9 -lpjsdp-arm -apple-darwin9 -lpjnath-arm-apple-darwin9 -lpjsip-arm-apple-darwin9 -lpjsip-simple-arm-apple-darwin9 -lpjsip-ua-arm-apple-darwin9 -lpjsua-arm-apple-darwin9

这样可以吗?因为它给了我符号未找到的错误。我认为从“包含”库中找不到符号。我不知道出了什么问题我才刚刚开始了解在基于 linux 的系统下构建应用程序是如何工作的,我之前只在 C# 中进行过编程。

编辑:这是缺少的符号列表:

“_AudioSessionSetProperty”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_set_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_set_cap
  “_srtp_deinit”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _pjmedia_srtp_deinit_lib
  “_gsm_encode”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_encode
  “_AudioComponentInstanceNew”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
  “_AudioSessionAddPropertyListener”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_start
  “_speex_decoder_init”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
  “_res_Resample”,引用自:
      libpjmedia-arm-apple-darwin9.a(resample_resample.o) 中的 _pjmedia_resample_run
      libpjmedia-arm-apple-darwin9.a(resample_resample.o) 中的 _pjmedia_resample_run
  “_speex_bits_write”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_encode
  “_gsm_destroy”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_close
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_close
  “_AudioComponentInstanceDispose”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _propListener
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_destroy
  “_AudioSessionGetProperty”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
  “_AudioComponentFindNext”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_set_cap
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_factory_init
  “_speex_encoder_ctl”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_modify
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_modify
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
  “_speex_encoder_init”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
  “_AudioSessionSetActive”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_stop
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_start
  “_AudioUnitRender”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _input_callback
  “_srtp_dealloc”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _pjmedia_transport_srtp_stop
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _pjmedia_transport_srtp_stop
      _pjmedia_transport_srtp_start 在 libpjmedia-arm-apple-darwin9.a(transport_srtp.o)
  “_speex_lib_get_mode”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _pjmedia_codec_speex_init
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _pjmedia_codec_speex_init
  “_res_SrcLinear”,引用自:
      libpjmedia-arm-apple-darwin9.a(resample_resample.o) 中的 _pjmedia_resample_run
      libpjmedia-arm-apple-darwin9.a(resample_resample.o) 中的 _pjmedia_resample_run
  “_srtp_init”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _pjmedia_srtp_init_lib
  “_speex_bits_init”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
  “_AudioUnitSetProperty”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
  “_AudioUnitUninitialize”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _propListener
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_destroy
  “_speex_decoder_destroy”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_close
  “_AudioUnitInitialize”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)中的_create_audio_unit
  “_speex_bits_reset”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_encode
  “_AudioOutputUnitStop”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_stop
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_stop
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_start
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _interruptionListener
  “_srtp_protect_rtcp”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _transport_send_rtcp2
  “_speex_decode_int”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_recover
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_decode
  “_speex_encoder_destroy”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _get_speex_info
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_close
  “_gsm_create”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_open
  “_crypto_get_random”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _generate_crypto_attr_value
  “_speex_bits_unpack_unsigned”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
  “_speex_encode_int”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_encode
  “_octet_string_hex_string”,引用自:
      _pjmedia_transport_srtp_start 在 libpjmedia-arm-apple-darwin9.a(transport_srtp.o)
      _pjmedia_transport_srtp_start 在 libpjmedia-arm-apple-darwin9.a(transport_srtp.o)
  “_AudioSessionInitialize”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_factory_init
  “_speex_bits_read_from”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_parse
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_decode
  “_speex_nb_mode”,引用自:
      _speex_nb_mode$non_lazy_ptr 在 libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o)
  “_res_GetXOFF”,引用自:
      _pjmedia_resample_create 在 libpjmedia-arm-apple-darwin9.a(resample_resample.o)
  “_gsm_decode”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(gsm.o) 中的 _gsm_codec_decode
  “_speex_mode_query”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
  “_speex_bits_advance”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_decode
  “_AudioComponentGetDescription”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_get_cap
  “_srtp_create”,引用自:
      _pjmedia_transport_srtp_start 在 libpjmedia-arm-apple-darwin9.a(transport_srtp.o)
      _pjmedia_transport_srtp_start 在 libpjmedia-arm-apple-darwin9.a(transport_srtp.o)
  “_speex_bits_remaining”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _speex_get_next_frame
  “_srtp_unprotect_rtcp”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _srtp_rtcp_cb
  “_AudioOutputUnitStart”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_start
  “_AudioSessionRemovePropertyListenerWithUserData”,引用自:
      libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o) 中的 _ca_stream_destroy
  “_speex_decoder_ctl”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_modify
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_open
  “_speex_bits_nbytes”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_encode
  “_srtp_protect”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o)中的_transport_send_rtp
  “_speex_bits_destroy”,引用自:
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_close
      libpjmedia-codec-arm-apple-darwin9.a(speex_codec.o) 中的 _spx_codec_close
  “_srtp_unprotect”,引用自:
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _srtp_rtp_cb
      libpjmedia-arm-apple-darwin9.a(transport_srtp.o) 中的 _srtp_rtp_cb

有人为 iphone 构建了 pjsip 并使用它创建了一个新项目吗?

4

3 回答 3

9

您似乎(至少)缺少一些库。从符号中,我会说:

  • 您可能忘记添加 CoreAudio 框架。需要解析符号,如AudioUnitRender
  • 应该有一个来自 pjsip 的 RTP 库,其中包含pjrtp. 如果有,则将其添加到其他链接标志。这将修复_srtp_XXX丢失的符号。
  • 应该有一个来自 pjsip 的 GSM 库,其中包含gsm. 如果有,则将其添加到其他链接标志。这将修复_srtp_XXX丢失的符号。
  • 应该有一个来自 pjsip 的 Speex 库,其中包含speex. 如果有,则将其添加到其他链接标志。这将修复_srtp_XXX丢失的符号。

遇到缺失符号时,找到它们所在位置的最佳方法是:

  • 查看符号名称。好的库总是在它们的符号前面加上前缀,所以从名称中您可以猜出哪个库包含它。
  • 如果你有一个静态库并且你想知道导出的符号,那么你可以使用该otool -Sv mystaticlib.a命令。它将显示静态库的目录。
于 2010-06-02T06:21:01.757 回答
3

看来我很愚蠢,没有观察到一个名为第三方的文件夹。有缺少的图书馆。在文档中没有提到他们,所以我什至没有费心去查看其他文件夹。我仍然缺少符号,但更少(我认为)。我还包括CoreAudio,我认为它没有帮助。我修改了我的项目:

添加到其他链接器标志:

-lg7221codec-arm-apple-darwin9 -lgsmcodec-arm-apple-darwin9 -lilbccodec-arm-apple-darwin9 -lmilenage-arm-apple-darwin9 -lresample-arm-apple-darwin9 -lspeex-arm-apple-darwin9 -lsrtp-arm-apple-darwin9

并到图书馆搜索路径:

/Users/kudorgyozo/pjsip_iphone/third_party/lib

我不必修改标题搜索路径或包含我认为的新标题。

这是现在缺少的:

  "_AudioSessionSetProperty", referenced from:
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_set_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_set_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioComponentInstanceNew", referenced from:
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioSessionAddPropertyListener", referenced from:
      _ca_stream_start in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioComponentInstanceDispose", referenced from:
      _propListener in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_destroy in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioSessionGetProperty", referenced from:
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioComponentFindNext", referenced from:
      _ca_stream_set_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_factory_init in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioSessionSetActive", referenced from:
      _ca_stream_stop in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_start in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioUnitRender", referenced from:
      _input_callback in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioUnitSetProperty", referenced from:
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioUnitUninitialize", referenced from:
      _propListener in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_destroy in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioUnitInitialize", referenced from:
      _create_audio_unit in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioOutputUnitStop", referenced from:
      _ca_stream_stop in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_stop in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _ca_stream_start in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
      _interruptionListener in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioSessionInitialize", referenced from:
      _ca_factory_init in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioComponentGetDescription", referenced from:
      _ca_stream_get_cap in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioOutputUnitStart", referenced from:
      _ca_stream_start in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
  "_AudioSessionRemovePropertyListenerWithUserData", referenced from:
      _ca_stream_destroy in libpjmedia-audiodev-arm-apple-darwin9.a(coreaudio_dev.o)
ld: symbol(s) not found

在我看来,所有这些都来自这个文件 libpjmedia-audiodev-arm-apple-darwin9.a 但我已将它包含在链接器标志中并在 lib 搜索路径中。

我能够成功构建它。缺少的框架是 AudioToolbox。谷歌搜索了 AudioSessionSetProperty,这就是我发现的。感谢帮助。

于 2010-06-02T07:57:30.520 回答
0

将每个静态库添加到在构建 Pjsip 库期间构建的 xcode 项目中。然后添加与音频和核心框架相关的每个框架。

于 2012-12-16T13:16:12.343 回答