【问题标题】:XCode linker error : library not found for -lAdMobDeviceXCode 链接器错误:找不到 -lAdMobDevice 的库
【发布时间】:2024-01-18 22:07:01
【问题描述】:

我正在尝试使用 AdMob 构建我的 iPhone 应用程序的精简版。我遵循http://www.iphonedevsdk.com/forum/iphone-sdk-development/11358-creating-lite-version-app.html 此处的指导方针并创建了两个不同的目标。在精简版中,我添加了一个名为 LITEVERSION 的宏,我正在使用 #ifdef 进行检查并执行相应的操作。

但是当我构建应用程序的精简版时,我得到一个链接器错误

ld:找不到 -lAdMobDevice 的库 collect2: ld 返回 1 个退出状态

但是,我能够毫无问题地构建完整版本,并且还注意到即使我删除了 #ifdef 宏,构建工作正常(对于完整版本)。这表明 libAdMobSimulator.a 库为完整版正确链接,但在精简版上失败。

任何指针将不胜感激!

干杯 水壶

【问题讨论】:

  • 您是从别名目录拖放文件吗?这就是我所做的。我将文件复制到另一个目录然后拖放到它工作的项目中的那一刻。足以让你完全发疯是不是!!

标签: iphone xcode linker


【解决方案1】:

当我遇到这个问题时,原因是我像普通源文件一样将库添加到 Xcode 中。

修复方法是删除它,然后使用“添加->现有框架...”对话框正确添加它。

【讨论】:

  • +1:为我解决了同样的问题。我还没有确定,但有人会假设 XCode 在以这种方式添加库/框架时必须添加一些额外的搜索路径和/或链接器标志。
【解决方案2】:

我在使用 CocoaPods 库时遇到了类似的错误

找不到 -lPods-MyApp 的库

我收到错误是因为我打开的是 xcode 项目而不是 workspace

【讨论】:

    【解决方案3】:

    我使用CocoaPods,然后运行pod install,并修复了它。

    【讨论】:

    • 我也面临同样的问题,但是再次安装 pod 没有用!还有其他选择吗..
    【解决方案4】:

    我知道他的问题是什么。我刚刚删除了所有框架和库,并将它们重新添加到两个目标中,它起作用了!

    干杯

    【讨论】:

    • 没有用删除所有框架和库来解决这个问题。只是相关的。
    【解决方案5】:

    我造成这种情况是因为youmeng sdk 中使用的libray libMobClickLibrary.a 丢失了。我修复了将libMobClickLibrary.a复制到项目floder后发出的问题。

    【讨论】:

      【解决方案6】:

      我在使用 Google Analytics(分析)库时遇到了同样的问题。我的问题是我忘记在目标的构建设置中添加库搜索路径的路径。 (目标 -> 构建设置 -> 库搜索路径)

      【讨论】:

        最近更新 更多