代码之家  ›  专栏  ›  技术社区  ›  Stefano Verna

MacOS/iPhone库交叉编译的最佳实践

  •  2
  • Stefano Verna  · 技术社区  · 15 年前

    我建立了一个静态库,在Cocoa-Touch环境中运行良好。现在我想把它也编译成Cocoa。。我可以有一个带有不同sdk目标的XCode项目吗?是否有一些资源能够在这种(或其他)意义上给出最佳实践的提示?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Goles    15 年前

    在过去的两个月里,我一直在做这个任务(交叉编译iPhone/Android/macos/Linux/Windows的静态库。。。

    当然,一种很好的方法是,将外部xcode项目作为目标添加到第一个xcode项目中。因此,您为macosx、iPhone和其他您想要支持的平台创建了一个新的“活动配置”。

    Here ,您可以找到一个很好的教程,介绍如何使用辅助Xcode项目作为主项目的目标来构建静态库。这是一个很酷的方法,因为如果你调试,例如,你仍然拥有库的所有符号,等等。

        2
  •  1
  •   TechZen    15 年前

    这是可以做到的,但它需要一些手动调整的建设。

    Xcode Build System Guide.

    作为一种非正式的实现方法,您可以创建两个独立的项目,并为每个项目添加完全相同的库源文件集的引用。设置一个为Cocoa Touch编译的项目,另一个为Cocoa编译。如果两个项目引用相同的文件,则在一个项目中所做的更改将自动反映在另一个项目中(如果两个项目都打开了,Xcode会抱怨文件被另一个应用程序更改了,否则它不会注意到。)

    我有一个实用类,我不断地在其中转储新方法。我将它添加到每个项目中,并根据需要放置方法。新方法出现在旧项目中,因为源文件在所有项目中共享。