【问题标题】:Compiling libjpeg for iOS为 iOS 编译 libjpeg
【发布时间】:2012-10-19 10:36:23
【问题描述】:

我正在尝试在 XCode 中为 iOS 6 编译一个项目,我正在使用以下标头,其中包括我需要的功能:

#include "cdjpeg.h"     /* Common decls for cjpeg/djpeg applications */
#include "transupp.h"   /* Support routines for jpegtran */

那些直接来自 jpegtran 实用程序资源。我之前安装过jpeg库,我的/usr/local/lib/中有libjpeg.a。 但是,当我尝试编译时,我收到错误“Undefined symbols for architecture i386”或“Undefined symbols for architecture armv7”,具体取决于目标是否为 iPhone 模拟器或不。 以下是它找不到符号的关键字:

  "_jpeg_stdio_src"
  "_jpeg_finish_compress"
  "_jcopy_markers_execute"
  "_jpeg_copy_critical_parameters"
  "_jtransform_adjust_parameters"
  "_jpeg_destroy_compress"
  "_jtransform_execute_transform"
  "_jpeg_finish_decompress"
  "_jpeg_read_header"
  "_jtransform_request_workspace"
  "_jpeg_write_coefficients"
  "_jpeg_read_coefficients"
  "_jpeg_destroy_decompress"
  "_jpeg_stdio_dest"
  "_jcopy_markers_setup"

我之前遇到过缺少符号的错误,并且总是最终放弃使用 3rd 方库,但在那种特殊情况下,没有办法。

我在这里做错了什么?

编辑:我已将 libjpeg.a 添加到项目设置中,它确实更进一步,但现在停在:

Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: i386-apple-darwin12.2.0
Thread model: posix
"lots-of-debug-paths"
ld: library not found for -ljpeg
clang: error: linker command failed with exit code 1 (use -v to see invocation)

【问题讨论】:

    标签: objective-c xcode symbols libjpeg missing-symbols


    【解决方案1】:

    我不知道你是如何编译它的。但是您需要更改 make install 以便在 i386 和 armv7 中编译它。我很确定你只是运行 make,所以它为你的 mac 编译了它,这肯定是一个 x84_64 架构,这肯定不是你想要的

    你可以检查

    lipo -info  /usr/local/lib/libjpeg.a // if libjpeg.a is at this path
    

    file /usr/local/lib/libjpeg.a
    

    【讨论】:

    • 谢谢,那个文件工具帮了大忙!
    【解决方案2】:

    我最近也需要 libjpeg 用于 iOS(作为另一个第三方库的依赖项)

    我最终只使用了libjpeg-turbo,它带有一个预编译的胖二进制文件

    Architectures in the fat file: libjpeg.dylib are: i386 x86_64 armv6 armv7 armv7s arm64 
    

    【讨论】:

    • 您能否详细说明您包含哪些文件?我无法让它工作。
    • @FotisDimanidis 您需要将库(.a.dylib)添加到您的目标,并在构建设置中修改标题搜索路径以包括:/opt/libjpeg-turbo/include (这是 libjpeg-turbo 安装其二进制文件的地方)。
    猜你喜欢
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多