0

他の誰かが開発したXcodeプロジェクトを実行しようとしていますが、次のエラーが発生し続けます。グーグルすると、依存関係が欠落していることがわかりますが、依存関係がある場合は、どちらかわかりません。おそらく、プロジェクトにはすでにすべての「バイナリとライブラリのリンク」が構成されています。異なるバージョンのXcodeとターゲットデバイスを試しましたが、同じエラーが発生します。問題をさらに絞り込むにはどうすればよいですか?

Undefined symbols for architecture i386:
  "___gl_pqSortExtractMin", referenced from:
      ___gl_computeInterior in sweep.o
  "___gl_pqSortMinimum", referenced from:
      ___gl_computeInterior in sweep.o
  "___gl_pqSortNewPriorityQ", referenced from:
      _InitPriorityQ in sweep.o
  "___gl_pqSortInsert", referenced from:
      _InitPriorityQ in sweep.o
      _CheckForIntersect in sweep.o
  "___gl_pqSortInit", referenced from:
      _InitPriorityQ in sweep.o
  "___gl_pqSortDeletePriorityQ", referenced from:
      _InitPriorityQ in sweep.o
      _DonePriorityQ in sweep.o
      _CheckForIntersect in sweep.o
  "___gl_pqSortDelete", referenced from:
      _CheckForRightSplice in sweep.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

1 に答える 1

1

つまり、コンパイラがヘッダーファイルを持っていても、実際にそれらをリンクしたときに、このコードの実際の実装が見つかりませんでした。したがって、静的ライブラリ(ヘッダーファイルのみが含まれている)をリンクしていないか、この静的ライブラリがi386アーキテクチャ用にコンパイルされていない可能性があります。したがって、シミュレータで動作させることはできません。コンパイルされているアーキテクチャの種類(armv6-armv7--armv7sなど)については、lipo-infolibMylib.aで確認する必要があります。

ここで私が見つけたもの:これはあなたが使用しているスイープファイルです。

http://oss.sgi.com/cgi-bin/cvsweb.cgi/projects/ogl-sample/main/gfx/lib/glu/libtess/sweep.c?annotate=1.2

中身

static int CheckForRightSplice( GLUtesselator *tess, ActiveRegion *regUp )

がある

pqDelete( tess->pq, eUp->Org->pqHandle ); /* __gl_pqSortDelete */

ちなみに、スイープのインクルードファイルには次のものがあります。

#include "priorityq.h"

したがって、関数のヘッダー定義はあるが、バイナリ実装がないため、コンパイルできます。したがって、リンカーエラーが発生します。あなたがあなたのマックにopenGlをインストールする必要があるかどうかはわかりません(私はすでに含まれていますが)、ちなみにあなたは(opengl / glu / libtess)libtessライブラリを持っていないと確信しています、これは「 priority.h"の定義。

見つかった場合のglulibは次のとおりです。http: //svn.netlabs.org/repos/gl2/opengl/glu/libtess/

したがって、フレームワークを自分でコンパイルしたかどうかを友人に尋ねる必要があります。Xcodeプロジェクトにリンクを追加するのを忘れたり、Macにバイナリがないか、i386にコンパイルされていない可能性があります(これに疑問がある場合でも)。ちなみに、私は実際にはopenGlの専門家ではありませんが、誰かにopenGlフォーラムに参加してもらうと、きっと助けてくれるでしょう。

于 2012-10-17T05:53:40.350 に答える