【问题标题】:library not found for -lDoubleConversion找不到 -lDoubleConversion 的库
【发布时间】:2018-11-06 19:47:27
【问题描述】:

我尝试在 XCode 上构建,但出现 ld: library not found for -lDoubleConversion 错误。我可以建立react-native run-ios。可以,但是 XCode 无法构建...

ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/DoubleConversion”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/Folly”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/GTMOAuth2”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/GTMSessionFetcher”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/Google-Maps-iOS-Utils”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/Protobuf”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/React”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/glog”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/leveldb-library”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/nanopb”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/react-native-google-maps”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/react-native-maps”的目录 ld:警告:找不到选项“-L/Users/xxxxx/Library/Developer/Xcode/DerivedData/xxxxx/Build/Products/Debug-iphonesimulator/yoga”的目录 ld:找不到 -lDoubleConversion 的库 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

【问题讨论】:

    标签: ios reactjs react-native react-native-ios


    【解决方案1】:

    对我来说,我解决了只打开MyAppName.xcworkspace 而不是MyAppName.xcodeproj,然后构建。

    【讨论】:

    • 对我来说也是如此……但为什么呢?
    • 哇,非常感谢它解决了我的问题。但是,如果您对此修复有所了解会更好。
    • 至于为什么可能是因为您使用的是 cocoapods 并且 pod 仅包含在工作区中,因此从 xcodeproj 构建时不要构建。
    • 对于像我一样刚接触 React Native 的人,你可以找到 。 xcworkspace at [project_name]/ios/.xcworkspace — 在 Xcode 中而不是 *.xcodeproj 中打开它(我花了半个小时来混淆 xcworkspace 和 xcodeproj)
    • 这很奇怪......我在 xcode 中保存了 ios 项目,它总是工作正常......但现在我不得不删除这个项目并再次添加它,它开始工作......无论如何谢谢
    【解决方案2】:

    我在升级到 RN 0.59 后不久就遇到了这个问题。

    对我有用的解决方案是删除 ios/build 文件夹,然后执行以下操作:

    cd ios
    
    pod install
    

    当我这样做时,我看到一个关于 Folly 的错误,人们建议这样做:

    pod deintegrate
    
    pod install
    

    我这样做了,但它仍然会抛出关于 Folly 的错误,所以我删除了 Podfile.lock,因为 pods 保留了与 RN 0.59 不兼容的旧版本 Folly。

    注意:我发现有人说不建议删除整个锁定文件。相反,您应该只删除锁定文件中的相关行,即与 Folly 相关的行。我已经删除了锁定文件,但一切正常。

    我跑了pod update,它更新了一堆东西并成功完成。

    我下次运行 pod install 时,它生成了一个很好的绿色成功安装列表。

    然后我又做了react-native run-ios,它在一段时间内第一次工作,除了它产生了红屏死机。

    所以我从 iOS 模拟器设备上删除了我的应用程序,然后运行:

    rm -rf node_modules
    
    npm install
    
    killall -9 node
    

    killall -9 node 只是为了杀死 Metro Bundler。这是我最喜欢的全面命令。如果你在你的机器上运行了 12 个 node.js API,也许可以改为执行sudo lsof -i :8081 之类的操作,并找到 Metro Bundler(s) 的进程 ID 并通过 PID 杀死它们。例如,如果您看到 Metro Bundler 以 PID 27322 运行,则执行kill -9 27322

    然后我在一个独立的终端中运行它:

    npm start -- --reset-cache
    

    回到VS Code集成终端:

    react-native run-ios
    

    成功了!!!!!!!!!

    然后我跑了:

    react-native run-android
    

    这可行,但在模拟器设备上卡在了 0%,所以我从模拟器中删除了 APK 并再次运行 react-native run-android

    成功了!!!!!!!!!

    【讨论】:

    • 热爱热情
    • 在我添加另一个包并执行npm i后它停止工作@
    【解决方案3】:

    当我在终端而不是 XCode 上构建项目时,它发生在我身上,它发生在 CI 和我的笔记本电脑上。

    发生这种情况是因为您正在构建项目 app.xcodeproj 而不是工作区 app.xcworkspace

    因此,您必须将调用中的参数从 -project app.xcodeproj 更改为 -workspace app.xcworkspace。请注意,参数名称也会发生变化,而不仅仅是值。

    现在,一个完整的调用示例。

    发件人:

    xcodebuild -sdk iphoneos -configuration yourconfig -project app.xcodeproj -scheme yourscheme build -UseModernBuildSystem=YES CODE_SIGN_STYLE=Automatic

    收件人:

    xcodebuild -sdk iphoneos -configuration yourconfig -workspace app.xcworkspace -scheme yourscheme build -UseModernBuildSystem=YES CODE_SIGN_STYLE=Automatic

    【讨论】:

      【解决方案4】:

      XCode 找不到 lDoubleConversion 库,需要将该库添加到 cocoa pods 文件中。

      您可以按照以下步骤轻松完成此操作

      1.将库文件添加到您的 podfile 中

      pod 'DoubleConversion', :podspec => './../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
      

      2.删除Podfile.lock

      3.运行 pod install

      4.在xcode链接框架和库中添加DoubleConversion.a

      5.清理项目并重新构建。

      应该可以的。

      【讨论】:

      • 在哪里可以找到 DoubleConversion.a 来添加它?
      • 不确定 DoubleConversion.a,但 DoubleConversion 库位于 node_modules/react-native/third-party 中
      【解决方案5】:

      我只是将部署目标从 10 更新到 11.4 并且它工作正常

      【讨论】:

        【解决方案6】:

        经过 3 天的努力,我找到了以下解决方案。

        1. 检查是否需要打开 MyAppName.xcworkspace 而不是 MyAppName.xcodeproj
        2. 关闭 Xcode 并尝试将 Pod deintegrate 然后 Pod Install
        3. 将构建设置从旧构建系统更改为新构建系统。

        对我来说,选项 3 成功了。

        【讨论】:

          【解决方案7】:

          以下步骤对我有用:

          1. 删除 use_frameworks!来自 ios/Podfile。

            target 'AwesomeProject' do
                # use_frameworks!
                ...
            end
            
          2. 在 ios/Podfile 中添加 DoubleConversion pod

            target 'AwesomeProject' do
                # use_frameworks!
                ...
                pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
            end
            
          3. 清除豆荚。

            pod deintegrate
            
            pod rm Podfile.lock
            
          4. 重新安装 pod

            pod install --repo-update --verbose
            
          5. 打开 AwesomeProject.xcworkspace 并运行您的应用程序。

          希望这对某人有帮助:)

          【讨论】:

          • @RocBoronat 当然,这只是意味着删除该文件。选项 '-r' 不是必需的,因为它只是一个文件,而不是文件夹;根据文件的权限和系统中的用户,您可能需要“-f”。
          • 哦,是的,我明白了。但是你写了pod rm Podfile.lock。也许有人因此而迷路了。
          【解决方案8】:

          在 Podfile 中使用 platform :ios, '10.0' 而不是 platform :ios, '11.0'。

          【讨论】:

            【解决方案9】:

            我用了几个小时尝试了其他所有方法, 有效的是在我的 Podfile 中设置:

            platform :ios, '10.0'
            

            Info.plist 中的iOS Deployment Target Version 相同。他们是不同的。

            【讨论】:

              【解决方案10】:

              我对 iOS 构建过程有点陌生,我将分享我的解决方案,希望可以为任何人节省数小时的挫败感。

              就我而言,它只是一个陈旧/糟糕的构建。确保您在 Xcode <YOUR_APP>.xcworkspace 中打开了正确的 Xcode 文件夹,在 Xcode 的顶部菜单中,选择 Product -> Clean Build Folder

              【讨论】:

                【解决方案11】:

                有时在/ios 中很容易pod install 然后关闭xcode 并重新打开它并重建。为我工作。

                【讨论】:

                  【解决方案12】:

                  我的问题是我使用 cocoapods 迁移到 React Native 0.60,并且我忽略了更新我的 Fastlane 构建过程以使用 .xcworkspace 而不是 .xcproj 文件进行构建。

                  我通过观察我可以使用 Xcode 构建和存档构建但我的 Fastlane 构建失败来缩小范围。菜鸟。

                  【讨论】:

                    【解决方案13】:

                    通过在 xcode 上为方案激活 Find Implicit Dependencies 解决了我项目中的问题。

                    【讨论】:

                      【解决方案14】:

                      对我来说:

                      将部署目标更改为 11.0, 还将 AppNameTEST 部署目标更改为 11.0

                      rm -rf node_modules
                      
                      npm install
                      
                      pod update
                      
                      pod install
                      

                      【讨论】:

                        【解决方案15】:

                        尝试检查您的项目是否在真正的 ios 设备上运行良好,因为在我的情况下,此错误仅适用于在模拟器上构建,因为我有带有 m1 pro 芯片的 mac。

                        要修复它,您需要检查“Build Settings”->“Targets”->“Architectures”->“Excluded Architectures”并确认 arm64 未从项目中排除,如果排除,则应将其删除以运行模拟器在 m1 芯片上。

                        【讨论】:

                          猜你喜欢
                          • 2019-08-09
                          • 1970-01-01
                          • 1970-01-01
                          • 2020-12-19
                          • 1970-01-01
                          • 1970-01-01
                          • 2015-10-11
                          • 2014-02-14
                          • 2013-06-08
                          相关资源
                          最近更新 更多