【问题标题】:Library not found for -lpj-arm-apple-darwin9 [duplicate]找不到-lpj-arm-apple-darwin9的库[重复]
【发布时间】:2014-08-22 18:47:59
【问题描述】:

我从网上下载了 pjsip 源代码。它运行时没有任何错误。但是,我将 openssl lib 和包含文件集成到该 pjsip > ipjsua xcode 项目中。编译 xcode 项目后,出现如下所示的 library not found 错误和警告,

ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../pjlib/lib"'
ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../pjlib-util/lib"'
ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../pjmedia/lib"'
ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../pjnath/lib"'
ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../pjsip/lib"'
ld: warning: directory not found for option '-L"/Users/aahlaad/Desktop/swyxpjsip/iospj2/pjproject-2.2.1/pjsip-apps/src/pjsua/ios/../../../../third_party/lib"'
ld: library not found for -lpj-arm-apple-darwin9
clang: error: linker command failed with exit code 1 (use -v to see invocation)

【问题讨论】:

  • @jww 没有欺骗。啊,这是重复的,没有重复 :) 同样,静态库与框架不同,需要额外的过程。此外,库搜索路径问题大多与框架无关。

标签: ios objective-c xcode openssl pjsip


【解决方案1】:

删除您的派生数据并 转到项目->构建设置->搜索路径 并分别从 Framework/Header/Library Search Path 中删除所有内容,然后在 Project -> General ->Linked Frameworks and Libraries

中再次添加您的框架

【讨论】:

    【解决方案2】:

    ld: 找不到 -lpj-arm-apple-darwin9 的库

    下面介绍如何在 Xcode 下添加头文件和库。它显示了如何添加 OpenSSL,但在您的情况下,对 PJSIP 执行相同操作。

    标题:

    图书馆:

    如果您的 PJSIP 库有静态存档和共享对象,则删除共享对象。即使 iOS 只允许静态链接,Xcode 仍然会链接到共享对象(如果可用)。显然,Xcode 开发人员没有收到备忘录。


    如果您需要帮助将 PJSIP 库添加到 Xcode 以使其显示在 Frameworks and Libraries 下,请参阅How to “add existing frameworks” in Xcode 4?


    如果您添加了 PJSIP 库但缺少架构,您可以使用以下内容查看 fat 库中的内容:

    $ xcrun -sdk iphoneos lipo -info /usr/local/ssl/ios/lib/libcrypto.a 
    Architectures in the fat file: libcrypto.a are: armv7 armv7s arm64 i386 
    

    理想情况下,您将拥有四种架构:ARMv7、ARMv7s、ARM64 和 i386。 i386 用于模拟器下的调试构建。

    如果您缺少一个架构,那么您应该使用缺少的架构重新构建库,然后使用lipo 将不同的架构组合成一个单一的胖库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多