2

因此,我正在使用 3dar SDK,并且构建实现 sdk 和生成的 SM3Dar.h 标头的独立应用程序没有问题。但是现在我正在尝试将相同的 sdk 用作更大项目的一部分,它似乎无法正常运行。似乎它知道头文件在那里,但没有与该文件和库正确通信。我正在尝试在 iPhone 5 上运行它,并且我拥有最新的 XCode。

但我收到这些错误

Undefined symbols for architecture armv7s:
  "**___cxa_pure_virtual", referenced from**:
      vtable for Comparable in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
  "**vtable for __cxxabiv1::__si_class_type_info", referenced from:**
      typeinfo for ComboVertex in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      typeinfo for ObjDB in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjDB.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  **"operator new[](unsigned long)", referenced from:**
      Array<FloatPolygon>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatVertex>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<CString>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjFile.o)
      Array<Vector3>::resize(int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Array<Vector3>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Array<unsigned char>::resize(int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Array<unsigned char>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      ...
  **"std::terminate()", referenced from:**
      +[Geometry newOBJFromResource:] in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      FloatObject::~FloatObject() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      FloatObject::FloatObject() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      read_obj(GeometryInterface*, char const*) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjFile.o)
      Array<CString>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjFile.o)
      ...
  **"operator delete[](void*)", referenced from:**
      RunningAverage<Vector3>::~RunningAverage() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(CoordinateSystemAPI.o)
      Array<FloatVertex>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatVertex>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<CString>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjFile.o)
      Array<CString>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(ObjFile.o)
      ...
  **"vtable for __cxxabiv1::__class_type_info", referenced from:**
      typeinfo for Comparable in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      typeinfo for GeometryInterface in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(GeometryInterface.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  ****"___cxa_guard_abort", referenced from:****
      Vector2::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Vector3::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
  **"___gxx_personality_sj0", referenced from:**
      +[Geometry newOBJFromResource:] in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      FloatObject::~FloatObject() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::~Array() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      FloatObject::FloatObject() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatPolygon>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      Array<FloatVertex>::Array(int, int) in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      +[SM3DARSession sharedInstance] in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARSession.o)
      ...
  **"___cxa_guard_acquire", referenced from:**
      Vector2::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Vector3::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
  "___cxa_guard_release", referenced from:
      Vector2::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
      Vector3::zero() in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(FloatObject.o)
  "std::ios_base::Init::~Init()", referenced from:
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARController.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARPointOfInterest.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(CoordinateSystemAPI.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Matrix4.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Matrix3.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARPointView.o)
      ...
  "std::ios_base::Init::Init()", referenced from:
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARController.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARPointOfInterest.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(CoordinateSystemAPI.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Geometry.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Matrix4.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(Matrix3.o)
      ___cxx_global_var_init in lib3DAR_v23_2012_12_06_DistributionPatch_2013_05_18.a(SM3DARPointView.o)
      ...
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 回答 2

13

将“-lc++”添加到构建设置中的其他链接器标志。

于 2015-06-08T02:21:34.567 回答
0

我相信这个库是为 armv7 而​​不是 armv7s 构建的。要确认这是问题所在,请将您的项目配置为仅在项目构建设置中为 armv7 构建并查看是否有效。如果是这种情况,您的选择是获取库的更新版本或仅为 armv7 构建代码。

于 2013-07-16T16:17:08.570 回答