1

XCodeでiOS6のプロジェクトをコンパイルしようとしていますが、必要な機能を含む次のヘッダーを使用しています。

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

それらはjpegtranユーティリティソースから直接出ています。以前にjpegライブラリをインストールしましたが、/ usr / local /lib/にlibjpeg.aがあります。ただし、コンパイルしようとすると、ターゲットがiPhoneシミュレーターであるかどうかに応じて、 「アーキテクチャi386の未定義のシンボル」または「アーキテクチャarmv7の未定義のシンボル」というエラーが発生します。記号が見つからないキーワードは次のとおりです。

  "_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"

私は以前にシンボルの欠落エラーに遭遇し、常にサードパーティのライブラリの使用をあきらめましたが、その特定の場合には回避策がありません。

私はここで何が間違っているのですか?

編集:私はプロジェクト設定に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)
4

2 に答える 2

2

私は最近libjpegiOSにも必要でした(別のサードパーティライブラリの依存関係として)

コンパイル済みのファットバイナリが付属しているlibjpeg-turboを使用することになりました。

Architectures in the fat file: libjpeg.dylib are: i386 x86_64 armv6 armv7 armv7s arm64 
于 2015-11-17T07:52:50.750 に答える
1

どのようにコンパイルしたのかわかりません。ただし、i386およびarmv7でコンパイルするには、makeinstallを変更する必要があります。私はあなたがmakeを実行するだけだと確信しているので、それはあなたのためにそれをコンパイルしました、それは確かにx84_64アーチです、そしてこれは確かにあなたが望むものではありません

で確認できます

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

また

file /usr/local/lib/libjpeg.a
于 2012-10-30T08:43:44.293 に答える