我正在开发一款iPhone应用程序,而且我对一切都很陌生。我正在使用Mountain Lion OS X 10.8并使用xCode v4.5。我的项目需要JPEG处理功能,我想使用libjpeg(http://www.ijg.org/)库。我尝试了一些不同的方法,但有点天真,我不确定如何开始。下载软件包后,我通常会./configure;制作并安装。现在我在(/ usr / local / lib)和(/ usr / local / lib)下的(/ usr / local / lib)下有(jconfig.h,jerror.h,jmorecfg.h,jpeglib.h)但是我不知道如何在我的xCode项目中链接/使用它。 任何人都可以将我链接到教程或给我一个正确的方向吗? 如果有人成功安装并使用了jpeg库,请帮助..
答案 0 :(得分:3)
这有点痛苦,因为你需要为两种架构编译LibJPEG:ARM,iOS,x86,模拟器。
您最好的选择是使用NSImage
或CGImage
。 iOS上已经有一个随系统提供的JPEG库,因此您不需要使用LibJPEG。
另一种方法是将LibJPEG源直接放入您的项目(包括*.c
文件)。这样,它们将针对不同的体系结构(模拟和部署)正确构建。
您也可以为ARM构建,然后忘记运行模拟器。
或者您可以将LibJPEG构建为胖二进制文件,方法是将其编译两次,并将每个编译中生成的库(libjpeg.a
)与libtool
组合。
libtool -static path/to/arm/libjpeg.a path/to/x86/libjpeg.a -o libjpeg.a
您可以看到为何建议使用NSImage
或CGImage
。最好使用已安装的库,而不是尝试构建和安装新库。
因为听起来你想要艰难地做事,这里有一个如何为i386和ppc架构构建胖静态库的例子。这是在PowerPC OS X机器上完成的,如果要为ARM和i386编译,则必须进行调整。
请注意,您必须指定--host
和--build
进行交叉编译。以下值对我的计算机是正确的,但我确定它们对您的计算机是错误的。
$ cd jpeg-8d $ mkdir build-ppc build-i386 $ cd build-ppc $ ../configure CFLAGS='-arch ppc -O2 -g' LDFLAGS='-arch ppc' \ --enable-static --disable-shared $ make -j2 $ cd ../build-i386 $ ../configure CFLAGS='-arch i386 -O2 -g' LDFLAGS='-arch i386' \ --enable-static --disable-shared \ --build=powerpc-apple-darwin9.8.0 --host=i386-apple-darwin9.8.0 $ make -j2 $ cd .. $ file build-ppc/.libs/libjpeg.a build-ppc/.libs/libjpeg.a: current ar archive random library $ file build-i386/.libs/libjpeg.a build-i386/.libs/libjpeg.a: current ar archive random library $ libtool -static build-*/.libs/libjpeg.a -o libjpeg.a $ file libjpeg.a libjpeg.a: Mach-O universal binary with 2 architectures libjpeg.a (for architecture i386): current ar archive random library libjpeg.a (for architecture ppc): current ar archive random library