【问题标题】:How to link a dynamic library Xcode 5如何链接动态库 Xcode 5
【发布时间】:2014-12-09 09:23:28
【问题描述】:

你能告诉我如何链接到动态库的教程吗? 我创建了一个动态库。现在我不知道如何将它包含到您的项目中。

我尝试的是 1.我将dylib和header文件夹复制到我的项目中。 2. 我将库搜索路径设为 $(PROJECT_DIR) 3. 我将标题搜索路径指定为 $(PROJECT_DIR)/include。 现在它构建和链接就好了。但是当我运行它时,它给了我这个错误

.yld:库未加载:/usr/local/lib/test_dynamic_lib.dylib

现在我在文档中看到您必须在该路径中安装库。怎么做? 或者您可以操纵运行路径。我不知道它说了什么。我实际上是可可开发的初学者。

你能解释一下怎么做吗?或者指向一个教程。我找不到。

【问题讨论】:

  • sudo cp $PROJECT_DIR/test_dynamic_lib.dylib /usr/local/lib/
  • 嗯,这很愚蠢,但我们可以通过 xcode 做到这一点吗?如果我要在应用商店上交付我的应用,我将如何管理它。正如我所说,我对此真的很陌生。
  • 愚蠢?从什么时候开始复制文件被认为是愚蠢的?如果您想将您的应用程序放在 AppStore 上,您仍然需要一些机制来将动态库安装在用户的系统上。 (或者,如果您不希望这样,请改用静态链接库。)
  • 我的意思是我的问题很愚蠢。 :) 如何在用户系统上安装该库?实际上,如果您能给我指出一个非常有用的教程

标签: objective-c macos cocoa dylib dynamic-library


【解决方案1】:

我找到了答案。 我在目标上编写了一个构建脚本。

导出 DYLIB=myLibrary.dylib mkdir "$TARGET_BUILD_DIR/$TARGET_NAME.bundle/Contents/Frameworks" cp -f "$SRCROOT/$DYLIB "$TARGET_BUILD_DIR/$TARGET_NAME.bundle/Contents/Frameworks" install_name_tool -change @executable_path/$DYLIB @loader_path/../Frameworks/$DYLIB"$TARGET_BUILD_DIR/$TARGET_NAME.bundle/Contents/MacOS/$PRODUCT_NAM

是的,感谢顺磁羊角面包将我指向正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-12
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多