gpt4 book ai didi

iphone - 如何在 xCode 中使用 jpeglib

转载 作者:行者123 更新时间:2023-11-28 20:28:24 25 4
gpt4 key购买 nike

我正在开发一个 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 库,请帮助..

最佳答案

这有点麻烦,因为您需要为两种架构编译 LibJPEG:ARM(用于 iOS)和 x86(用于模拟器)。

  1. 最好的办法是使用 NSImageCGImage。 iOS 上已经有一个 JPEG 库,随系统提供,所以你不需要使用 LibJPEG。

  2. 另一种方法是将 LibJPEG 源代码直接放入您的项目(包括 *.c 文件)。这样,它们将针对不同的架构(模拟和部署)正确构建。

  3. 您也可以只为 ARM 构建,然后忘记运行模拟器。

  4. 或者,您可以将 LibJPEG 编译两次并将每次编译生成的库 (libjpeg.a) 与 libtool 合并,从而将 LibJPEG 构建为胖二进制文件。

    libtool -static path/to/arm/libjpeg.a path/to/x86/libjpeg.a -o libjpeg.a

你可以看到为什么建议使用 NSImageCGImage。最好使用已安装的库,而不是尝试构建和安装新库。

如何制作胖静态库

既然听起来您想以困难的方式做事,下面是一个示例,说明如何为 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.alibjpeg.a: Mach-O universal binary with 2 architectureslibjpeg.a (for architecture i386):      current ar archive random librarylibjpeg.a (for architecture ppc):       current ar archive random library

关于iphone - 如何在 xCode 中使用 jpeglib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com