2009-07-14 206 views
1

我有一个在Macosx ibopencore-amrnb.a内建立的图书馆。我可以将它与Iphone应用程序作为库一起使用吗?如果是的话如何?如果没有我如何获得与iPhone应用程序的图书馆工作?使用图书馆

感谢, Sowri

回答

1

MAC OSX是X86平台的iPhone使用的ARM处理器,以便在最起码它需要recompiled.The架构有很大的不同,虽然,所以像endeaness(?)并且必须考虑字的大小。

0

步骤1)构建静态库。

我已经为iPhone静态构建了第三方库。有点试验和错误之后,这里是我的发现是一个很好的起点:

交叉编译的iPhoneOS:

的./configure --prefix = /路径/要/项目/ external/iphoneos/--host =“arm-apple-darwin9”--target = arm-apple-darwin9 --enable-static --disable-shared CC =/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1 CFLAGS =“ - isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk”CPP =/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp make make install

交叉编译为iPhoneSimulator:

的./configure前缀= /路径/到/项目/外部/ iphonesimulator --enable静电= YES --enable共享=无CC = /开发商/平台/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 CFLAGS =“ - arch i686 -pipe -mdynamic -no-pic -std = c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type -wunused-variable -fmessage-length = 0 -fvisibility = hidden -mmacosx-version -min = 10.5 -I/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/-isysroot/“Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk”CPP =/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/cpp AR =/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar LDFLAGS =“ - arch i686 -isysroot /Developer/Platforms/iPhoneSimulator.pla TForm的/开发商/软件开发工具包/ iPhoneSimulator3.0.sdk轮候册,-dead_strip -mmacosx版本分钟= 10.5" 使 使安装

然而,这真的只是一个起点。它可能只适用于具有灵活Makefiles的项目。如果上述不工作,我不得不:

  • 打开特定项目的./configure标志
  • 修改配置脚本
  • 修改生成的Makefile
  • 修改自动配置脚本

您还可以打开iPhoneOS版本的优化标志(首先工作后)。

步骤2)将库添加到项目的搜索路径。

在您的项目信息设置,设置这些构建选项:

头搜索路径: “$(SRCROOT)/外部/ $(PLATFORM_NAME)/包括”

库搜索路径:“$( SRCROOT)/外部/ $(PLATFORM_NAME)/ lib目录”

其它链接器标记:[添加标志为您的静态库]

之后,你应该能够在项目中包含的第三方库。

+0

嘿谢谢你们伙计 我的确如你所说的那样,它看起来很容易。 谢谢 – Sowri 2009-07-16 18:26:33