【问题标题】:Duplicate symbols in iOS using PJSIP and VLC使用 PJSIP 和 VLC 在 iOS 中复制符号
【发布时间】:2018-10-01 02:15:21
【问题描述】:

我正在构建一个需要 VLC 和 PJSIP 的 react-native 应用程序。该代码在 Android 上运行良好,但在 iOS 上,链接时出现重复符号冲突。它显示以下错误:

重复符号 _srtp_create 在: /vlc/MobileVLCKit-binary/MobileVLCKit.framework/MobileVLCKit(libvlc_srtp_la-srtp.o) /Library/Developer/Xcode/DerivedData/Bee-afimekrxplarzrfgyjgzoqwbrfqt/Build/Products/Debug-iphoneos/libRTCPjSip.a(srtp.o) 重复符号 _MD5_Init 在: /vlc/MobileVLCKit-binary/MobileVLCKit.framework/MobileVLCKit(md5.o) /Library/Developer/Xcode/DerivedData/Bee-afimekrxplarzrfgyjgzoqwbrfqt/Build/Products/Debug-iphoneos/libRTCPjSip.a(md5_dgst.o) 重复符号 _MD5_Final 在: /vlc/MobileVLCKit-binary/MobileVLCKit.framework/MobileVLCKit(md5.o) /Library/Developer/Xcode/DerivedData/Bee-afimekrxplarzrfgyjgzoqwbrfqt/Build/Products/Debug-iphoneos/libRTCPjSip.a(md5_dgst.o) 重复符号 _MD5_Update 在: /vlc/MobileVLCKit-binary/MobileVLCKit.framework/MobileVLCKit(md5.o) /Library/Developer/Xcode/DerivedData/Bee-afimekrxplarzrfgyjgzoqwbrfqt/Build/Products/Debug-iphoneos/libRTCPjSip.a(md5_dgst.o) ld:架构 arm64 的 4 个重复符号

我尝试在没有 SRTP 的情况下构建 PJSIP,但这也无济于事,因为 VLC 和 PJSIP 都需要 MD5。

感谢任何帮助。

【问题讨论】:

  • 从您的 Mac 中删除派生数据并尝试再次运行。
  • 我多次这样做。没用。
  • 您是否在项目中额外添加了 /vlc/MobileVLCkit 框架?错误是库文件 libRTCPjsip.a 和 MobileVLCkit 框架中都存在 md5_dgst.o 库。只需删除 MobileVLCkit 框架一次即可。
  • 删除框架构建它。但我需要项目中的两个库。有什么方法可以同时包含这两个静态库吗?
  • 不,你不能,除非你重命名一些符号。但是,您可以动态链接 VLC 或 SIP 而不是静态链接以轻松解决该问题。

标签: ios xcode react-native react-native-ios


【解决方案1】:

好的。我想出了解决方案。如果有人遇到同样的问题,请从项目中转储 VLCkit 并使用 react-native-pxplayer 代替 iOS。您可能需要单独构建 FFMpeg 库。您可以下载 FFMpeg-iOS 的预构建库并集成到您的项目中。此解决方案适用于在单个 iOS 应用程序中集成 RTSP 和 PJSIP。

请注意,VLC 和 PJSIP 在 Android 中协同工作没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多