【问题标题】:Linker error when compiling PJSIP on iOS 7 sdk and xcode 5在 iOS 7 sdk 和 xcode 5 上编译 PJSIP 时出现链接器错误
【发布时间】:2026-02-11 14:15:02
【问题描述】:

使用 iOS 7 SDK(xcode 5.0.2,Mavericks 10.9.1)编译 PJSIP 时出现此链接器错误。

Undefined symbols for architecture armv7s:
  "_aes_icm_advance_ismacryp", referenced from:
      _aes_icm_encrypt_ismacryp in libsrtp-arm-apple-darwin9.a(aes_icm.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../bin/pjmedia-test-arm-apple-darwin9] Error 1
make[1]: *** [pjmedia-test] Error 2
make: *** [all] Error 1

我该怎么办?

【问题讨论】:

    标签: ios linker makefile xcode5 pjsip


    【解决方案1】:

    您可以使用 pod 'pjsip' 从 cocoapods 下载预构建的 pjsip 库(armv7、armvs7、arm64、i386),或通过运行 https://github.com/chebur/pjsipbuild.sh 脚本自行编译它

    【讨论】:

    • 我使用了你的第二个建议并且构建好了。但是当嵌入我的一个小ios项目时,它构建失败!控制台显示“必须为此处理器声明字节顺序”、“未定义 PJ_IS_LITTLE_ENDIAN!”和“PJ_IS_BIG_ENDIAN 未定义!”。你知道为什么吗?
    • 您必须为 Xcode 的“预处理器宏”配置定义自己的预处理器宏 PJ_AUTOCONF=1。另请参阅此线程lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2011-November/…
    最近更新 更多