XCode 4.3:静态库生成

时间:2012-07-25 18:09:15

标签: objective-c ios c xcode static-libraries

我做了一些环顾四周,但我发现的大多数答案已经或感觉不完整,让我有点困惑。我已经获得了一个C库,我需要使用XCode 4.3编译成静态库,然后在一个单独的iOS应用程序项目中使用,但我不确定如何继续。我不确定目录结构是否重要,但无论如何它都是:

Library -> Section1 -> src -> .c files
                    -> sec1 -> .h files
                    -> sec1.h 
        -> Section2 -> src -> .c files
                    -> sec2 -> .h files
                    -> sec2.h

我一直在努力工作:http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html虽然从2008年开始已经过时了,但是我在这个问题上与这个问题相关联,也无法让它发挥作用。还有这个问题:Including external C library with Xcode但它没有详细介绍实际生成库,之后包括在一个单独的项目中。

如果有人能够提供清晰及最新的答案我和其他许多人,我非常感谢,我很有信心。如果需要更多信息,请告诉我们!

2 个答案:

答案 0 :(得分:7)

构建静态库:

  1. 在Xcode中创建一个静态库项目
  2. 将所有.c和.h文件添加到项目
  3. 编译
  4. 使用此库的最简单方法是将此静态库项目添加到应用程序项目中。这避免了担心创建胖库(即包含模拟器和设备代码的库)。

    将静态库项目添加到应用程序项目中:

    1. 选择文件>将文件添加到“”...
    2. 为静态库添加.xcodeproj
    3. 在Project Navigator中单击应用程序的.xcodeproj以显示构建选项
    4. 点击您应用的目标,然后选择“构建阶段”标签。
    5. 展开“使用二进制文件链接”
    6. 点击“+”按钮
    7. 展开“工作区”部分(您应该看到您的库,一个.a文件,那里)
    8. 点击你的图书馆,你应该好好去。
    9. 对于上面详细程度的难以理解的道歉,但不知怎的,人们似乎总是忘记执行步骤4-8,然后他们想知道为什么他们会收到链接错误!

      Xcode将无法找到您图书馆的标题。您可以像处理任何其他头文件一样将公共标题添加到项目中,也可以在构建设置中设置“标题搜索路径”。

答案 1 :(得分:0)

尝试使用Universal Framework项目,如github:https://github.com/kstenerud/iOS-Universal-Framework/所示。我已广泛使用它,并且它工作得很好。您只需为该库创建一个新的XCode项目,放入所有源文件和头文件,它将构建一个静态框架。您可以在其他项目中使用,也不必担心标题搜索路径。