gpt4 book ai didi

xcode - 为 OS X 创建静态框架

转载 作者:行者123 更新时间:2023-12-04 12:41:42 25 4
gpt4 key购买 nike

使用 mild hack ,可以为iOS制作静态框架。静态框架使用起来非常方便:它们可以简单地放入新项目中而无需额外的步骤(比如将它们添加到构建中并添加标题搜索路径)。

我最近开始做 OS X 编程,我注意到的第一件事是静态框架似乎不可用。动态框架显然是可用和推荐的,但由于我想制作一个专用于应用程序使用的私有(private)框架(不安装在 /Library/Frameworks 中),在新的应用程序项目中使用动态框架仍然 requires a bunch of extra steps .

在我的理想世界中,我会创建一个静态框架(一个包含头文件和编译的 .a 文件的框架),将框架拖放到一个新项目中,然后开始编码。有没有办法在 OS X 上制作这样一个静态框架?

附言我已经尝试在普通框架项目中将 Mach-O 输出类型设置为“静态库”,但我只是收到错误 Framework target has invalid MACH_O_TYPE value of 'staticlib'. .

最佳答案

您可以在 Mac OS X 上创建一个动态框架。在您的动态框架中,您可以将 LD_DYLIB_INSTALL_NAME 设置为 @rpath/Foo.framework/Versions/A/Foo

如果您有一个想要与此框架链接的应用程序,那么请确保您运行

  install_name_tool -add_rpath <rpath> <full-path-to-app-binary>

所以如果我有 Foo.app
  install_name_tool -add_rpath Foo.app/Contents/Library Foo.app/Contents/MacOS/Foo 

现在,如果您只是将 Foo.framework 复制到 Contents/Library 中,它应该会被加载并且一切正常。

我希望这有帮助。

可能更简单的是使用带有公共(public) header 的静态库。当您构建静态库时,您可以让 Xcode 自动为您复制 header 。在您的目标中,您可以将该文件夹添加到您的搜索路径中。

如果你使用静态库,Xcode 会去掉一些你的应用程序并不真正需要但被编译到静态库中的死代码。

关于xcode - 为 OS X 创建静态框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16488992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com