React Native 0.59 iOS构建报错:ld: library not found for -lDoubleConversion
ld: library not found for -lDoubleConversion错误 我来帮你搞定这个链接失败的问题,你已经试过了基础的清理重建,但还有几个更针对性的方案可以尝试:
确认Pod依赖的正确配置与安装
首先检查你的Podfile里是否明确包含了DoubleConversion,如果没有就加上对应的依赖行。然后执行以下命令彻底重新安装Pods:pod deintegrate pod clean pod install特别注意:一定要打开项目的
.xcworkspace文件,而不是.xcodeproj,否则Pod的依赖不会被正确加载。检查Xcode Build Settings中的路径配置
- 打开项目的Build Settings,搜索
Library Search Paths,确保里面包含$(inherited)这个配置项,它会自动引入Pods中所有库的搜索路径。如果没有,手动添加;如果路径缺失,也可以手动添加${PODS_ROOT}/DoubleConversion。 - 搜索
Other Linker Flags,同样确认$(inherited)存在,它会自动包含Pods生成的链接标记,包括-lDoubleConversion。
- 打开项目的Build Settings,搜索
执行更彻底的缓存清理
你之前的命令少打了一个字母(应该是ModuleCache而非ModuleCach),可以直接删除整个DerivedData文件夹来彻底清理:rm -rf ~/Library/Developer/Xcode/DerivedData/然后在Xcode中执行
Product > Clean Build Folder(快捷键Cmd+Shift+K),之后重启Xcode再尝试构建。排查依赖版本冲突
有时候DoubleConversion的版本和项目中其他依赖(比如React Native、gRPC等)存在兼容性问题,可以尝试指定一个稳定版本:
在Podfile中修改为:pod 'DoubleConversion', '~> 1.1.6'然后重新执行
pod install,或者更新该依赖:pod update DoubleConversion手动链接库文件(终极方案)
如果以上方法都无效,可以手动找到Pods中的DoubleConversion库:进入项目的Pods/DoubleConversion目录,找到编译好的.a静态库文件,将它添加到项目的Target > General > Linked Frameworks and Libraries列表中。
内容的提问来源于stack exchange,提问作者Mohamed Elmi Hassan

