未定义的符号:___darwin_check_fd_set_overflow

Posted

技术标签:

【中文标题】未定义的符号:___darwin_check_fd_set_overflow【英文标题】:Undefined symbol: ___darwin_check_fd_set_overflow 【发布时间】:2020-11-06 21:27:56 【问题描述】:

当我尝试运行我的项目时遇到此错误。

Undefined symbol: ___darwin_check_fd_set_overflow 

在这里,我加入了pod 'mobile-ffmpeg-full', '4.3.2' 这个用于视频流的框架。

完全错误:

Undefined symbols for architecture arm64:
  "___darwin_check_fd_set_overflow", referenced from:
      _read_key in mobileffmpeg(libmobileffmpeg_la-fftools_ffmpeg.o)
      _xmlNanoFTPCheckResponse in libxml2(nanoftp.o)
      _xmlNanoFTPCloseConnection in libxml2(nanoftp.o)
      _xmlNanoFTPList in libxml2(nanoftp.o)
      _xmlNanoFTPGet in libxml2(nanoftp.o)
      _OUTLINED_FUNCTION_8 in libxml2(nanoftp.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

框架 Git 链接: https://github.com/tanersener/mobile-ffmpeg

【问题讨论】:

你有没有设法解决这个问题@ios 你解决了这个问题@iOS 吗? 【参考方案1】:

我遇到了同样的问题,通过以下步骤解决了。

    在 podfile 中注释所有的 Flipper 函数 删除/评论 appDelegate 中的 FlipperInit 移除ios目录下的podfile.lock文件 pod 安装, 清理项目 再次运行

【讨论】:

不需要删除所有这些库(它会工作)。您可以简单地将它们降级,请参阅this answer 这些答案都不正确。我没有使用 POD,只是使用编译器。神奇的是,摆弄这个设置让它消失了apple.stackexchange.com/questions/337940/…【参考方案2】:

这有点像 Pod 问题,因此无需删除或注释掉文件。只需降级Flipper-FollyOpenSSL-Universal。在您的Podfile.lock 上搜索该物业。将它们降级一个版本。例如:

(2.2.1) to (2.2.0)
(= 1.0.2.20) to (= 1.0.2.19)

【讨论】:

这个问题似乎与操作系统/环境有关,我的同事在 Mojave 上得到了它,这解决了这个问题。谢谢。 太棒了,很高兴知道这有多大帮助【参考方案3】:

我遇到过好几次了。此问题主要发生在使用 Xcode 版本 (11.3.1) 的 Mojave 上。升级我的 macOS 和 Xcode 永久解决了这个问题。

解决方法;

    将您的 macOS 升级到 Catalina/Big Sur。然后你的 Xcode 到版本(12.4)。

    在 Podfile.lock 中降级 Flipper-Folly(从 2.2.1 到 2.2.0)和 OpenSSL-Universal(从 1.0.2.20 到 1.0.2.19)。这是它的样子

    Flipper-Folly (2.2.0): 为反应原生提升 CocoaLibEvent (~> 1.0) Flipper-DoubleConversion Flipper-Glog OpenSSL 通用 (= 1.0.2.19)
OpenSSL 通用 (1.0.2.19): OpenSSL-通用/静态 (= 1.0.2.19) OpenSSL-通用/静态 (1.0.2.19)
在 podfile 中注释所有的 Flipper 函数 移除 appDelegate 中的 FlipperInit 删除 podfile.lock 中的 openSSl 运行 pod 安装, 清理项目 再次运行

这里也有回答https://github.com/facebook/react-native/issues/30231

【讨论】:

【参考方案4】:
I have solved by Following step.
 
remove podfile.lock file in ios directory
remove pods file in ios directory
pod install,
clean project
run again




comment all flipper function in podfile

# Enables Flipper.
      #
      # Note that if you have use_frameworks! enabled, Flipper will not work and
      # you should disable these next few lines.
     
        # use_flipper!
      # post_install do |installer|
        # flipper_post_install(installer)
      # end

【讨论】:

以上是关于未定义的符号:___darwin_check_fd_set_overflow的主要内容,如果未能解决你的问题,请参考以下文章

链接上未定义的符号 ___gxx_personality_v0

架构 i386 的未定义符号:“_OBJC_CLASS_$_RCTBundleURLProvider”

未定义符号:__atomic_exchange_8

架构 armv7 的未定义符号:“_OBJC_CLASS_$_FIRApp”

架构 x86_64 的未定义符号:“_OBJC_CLASS_$_RCTImageLoader”

未定义符号:安装 firebase 库后出现 __isPlatformVersionAtLeast 错误