我正在开发一个 iPhone 应用程序,我对一切都很陌生。我正在开发 Mountain Lion OS X 10.8 并使用 xCode v4.5。我的项目需要 JPEG 处理功能,并且我想使用 libjpeg (http://www.ijg.org/) 库。我尝试了几种不同的方法,但有点天真,我不确定如何开始。下载软件包后,我通常使用 ./configure; 制作并安装。现在我在(/usr/local/include)下有(jconfig.h,jerror.h,jmorecfg.h,jpeglib.h),在(/usr/local/lib)下有(libjpeg.a,libjpeg.la)但是我不知道如何在我的 xCode 项目中链接/使用它。任何人都可以将我链接到教程或向我推动正确的方向吗?如果有人成功安装和使用 jpeg 库,请帮助..
问问题
4167 次
1 回答
3
这有点麻烦,因为您需要为两种架构编译 LibJPEG:ARM 用于 iOS,x86 用于模拟器。
最好的选择是使用
NSImage
orCGImage
。iOS 上已经有一个 JPEG 库,随系统一起提供,因此您不需要使用 LibJPEG。另一种方法是将 LibJPEG 源直接放入您的项目(包括
*.c
文件)中。这样,它们将针对不同的架构(模拟和部署)正确构建。您也可以只为 ARM 构建,然后忘记运行模拟器。
或者,您可以通过编译两次并将
libjpeg.a
每次编译的结果库 () 与libtool
.libtool -static path/to/arm/libjpeg.a path/to/x86/libjpeg.a -o libjpeg.a
您可以看到为什么建议使用NSImage
or CGImage
。最好使用已经安装的库,而不是尝试构建和安装新库。
如何制作一个胖静态库
因为听起来你想以艰难的方式做事,所以这里有一个如何为 i386 和 ppc 架构构建胖静态库的示例。这是在 PowerPC OS X 机器上完成的,如果要为 ARM 和 i386 编译,则必须进行调整。
请注意,您必须指定--host
和--build
进行交叉编译。下面的值对于我的计算机是正确的,但我确信它们对于您的计算机是错误的。
$ cd jpeg-8d $ mkdir build-ppc build-i386 $ cd 构建-ppc $ ../configure CFLAGS='-arch ppc -O2 -g' LDFLAGS='-arch ppc' \ --enable-static --disable-shared $使-j2 $ cd ../build-i386 $ ../configure CFLAGS='-arch i386 -O2 -g' LDFLAGS='-arch i386' \ --启用-静态--禁用-共享\ --build=powerpc-apple-darwin9.8.0 --host=i386-apple-darwin9.8.0 $使-j2 $ 光盘 .. $ 文件 build-ppc/.libs/libjpeg.a build-ppc/.libs/libjpeg.a:当前 ar 存档随机库 $ 文件 build-i386/.libs/libjpeg.a build-i386/.libs/libjpeg.a:当前 ar 存档随机库 $ libtool -static build-*/.libs/libjpeg.a -o libjpeg.a $ 文件 libjpeg.a libjpeg.a:具有 2 个架构的 Mach-O 通用二进制文件 libjpeg.a(用于架构 i386):当前 ar 存档随机库 libjpeg.a(用于架构 ppc):当前 ar 存档随机库
于 2012-11-03T21:11:18.947 回答