代码之家  ›  专栏  ›  技术社区  ›  Martin Cote

为iPhone创建静态库

  •  16
  • Martin Cote  · 技术社区  · 16 年前

    有一个开源库,我想用于我的iPhone应用程序。库是用C编写的,并用makefile编译。我想使用静态库。

    我应该使用什么GCC编译器标志来编译iPhone SDK的静态库?我认为'-arch'选项可以为我提供一个iPhone架构,但没有运气。

    任何帮助都将不胜感激。

    4 回复  |  直到 16 年前
        1
  •  6
  •   digdog    16 年前

    对于基于autoconf的库,我将投票支持Christopher Stawarz的构建脚本:

    http://pseudogreen.org/blog/build_autoconfed_libs_for_iphone.html

    使用此脚本,您可以使用单个命令自动完成整个过程,并且可以轻松地为不同平台(如iPhoneOS 2.0/2.1/2.2/2.2.1和iPhoneSimulator 2.0/2.1/2.2/2.2.1)提供库二进制文件。

    但是,由于 the change of Xcode 3.1 ,$(SDKROOT)构建设置已成为一些短名称,如“macosx10.5”、“iphoneos2.2.1”或“iphonesimulator2.2.1”。因此,他在文章中提到的在Xcode中为library和header设置搜索路径的方法将不起作用(在Xcode 3.1中)。你需要自己硬编码这条路。

        2
  •  3
  •   Glenn Martin Glenn Martin    16 年前

    尝试使用arm apple darwin gcc作为gcc应用程序进行编译。然后,您可以使用lipo将两个静态库(arm和386)合并在一起,以便在sim和设备上进行无缝开发。

        3
  •  1
  •   Cadu    14 年前

    只需使用x86 sdk(iphone模拟器)正常编译它,然后再次使用arm/ios平台(arm xxx xxx),然后使用“LIPO”(命令行工具)将两个静态lib合并到a.a中。这比重新发明轮子更简单(至少对于那些微不足道的lib来说)。。。。我是用liblo和libdmtx做的,我没有任何问题,我花了10分钟来做这两个。。。:-)

        4
  •  0
  •   Martin Cote    15 年前

    here ,我放弃了。在我的例子中,简单地将库移植到XCode比为iPhone编译静态库要简单得多。