2013-07-29 16 views
6

Próbuję zaimportować zestaw SDK mapy google i dodać całą bibliotekę, jak wyjaśniono na stronie mapy google. Proszę pomóż mi! :)Niezdefiniowane symbole architektury i386: "_GLKMatrix3Identity", do którego odwołuje się:

Undefined symbols for architecture i386: 
"_GLKMatrix3Identity", referenced from: 
    gmscore::vector::GLLineGroup::SetTransform(gmscore::math::Matrix4f const&, gmscore::base::reffed_ptr<gmscore::vector::Camera> const&) in GoogleMaps(GLLineGroup.o) 
    gmscore::vector::GLAlphaOnlyTextureShaderProgram::GLAlphaOnlyTextureShaderProgram(bool) in GoogleMaps(GLBasicShaderState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit, bool, gmscore::renderer::TextureState::Filter, gmscore::renderer::TextureState::Filter) in GoogleMaps(TextureState.o) 
    ... 
    gmscore::vector::GLLineGroup::SetTransform(gmscore::math::Matrix4f const&, gmscore::base::reffed_ptr<gmscore::vector::Camera> const&) in GoogleMaps(GLLineGroup.o) 
    gmscore::vector::GLAlphaOnlyTextureShaderProgram::GLAlphaOnlyTextureShaderProgram(bool) in GoogleMaps(GLBasicShaderState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit, bool, gmscore::renderer::TextureState::Filter, gmscore::renderer::TextureState::Filter) in GoogleMaps(TextureState.o) 
    ... 
    gmscore::vector::GLLineGroup::SetTransform(gmscore::math::Matrix4f const&, gmscore::base::reffed_ptr<gmscore::vector::Camera> const&) in GoogleMaps(GLLineGroup.o) 
    gmscore::vector::GLAlphaOnlyTextureShaderProgram::GLAlphaOnlyTextureShaderProgram(bool) in GoogleMaps(GLBasicShaderState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit, bool, gmscore::renderer::TextureState::Filter, gmscore::renderer::TextureState::Filter) in GoogleMaps(TextureState.o) 
    ... 
    gmscore::vector::GLLineGroup::SetTransform(gmscore::math::Matrix4f const&, gmscore::base::reffed_ptr<gmscore::vector::Camera> const&) in GoogleMaps(GLLineGroup.o) 
    gmscore::vector::GLAlphaOnlyTextureShaderProgram::GLAlphaOnlyTextureShaderProgram(bool) in GoogleMaps(GLBasicShaderState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(unsigned int) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit) in GoogleMaps(TextureState.o) 
    gmscore::renderer::TextureState::TextureState(gmscore::base::reffed_ptr<gmscore::renderer::ImageData> const&, gmscore::renderer::TextureState::TextureUnit, bool, gmscore::renderer::TextureState::Filter, gmscore::renderer::TextureState::Filter) in GoogleMaps(TextureState.o) 
    ... 
"_GLKMatrix4Identity", referenced from: 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    -[GMSTilesEntityProvider updateAndTransformTile:camera:renderer:behavior:] in GoogleMaps(GMSTilesEntityProvider.o) 
    -[GMSGLVectorTile applyTransform:camera:] in GoogleMaps(GMSGLVectorTile.o) 
    (anonymous namespace)::PointsBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSPointsEntityProvider.o) 
    (anonymous namespace)::StickerBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSStickersEntityProvider.o) 
    (anonymous namespace)::BubbleBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GMSBubbleEntityProvider.o) 
    gmscore::streetview::Panorama::Panorama(int, int, int, int, int, int) in GoogleMaps(Panorama.o) 
    gmscore::vector::UpdateMyLocationBehavior::Commit(gmscore::renderer::EntityRenderer*) in GoogleMaps(GLMyLocation.o) 
    ... 
    ... 
"_GLKMatrix4Invert", referenced from: 
    gmscore::streetview::Camera::Unproject(gmscore::math::Vector2f const&, bool*) in GoogleMaps(Camera-B046EE312980DB98.o) 
    gmscore::vector::Camera::UpdateInternals() in GoogleMaps(Camera-3E3856CABC8A9C74.o) 
    gmscore::renderer::Camera3D::SetTransform(gmscore::math::Matrix4f const&) in GoogleMaps(Camera3D.o) 
    gmscore::renderer::Camera3D::Transform() in GoogleMaps(Camera3D.o) 
"_OBJC_CLASS_$_GLKView", referenced from: 
    _OBJC_CLASS_$_GMSEntityRendererView in GoogleMaps(GMSEntityRendererView.o) 
"_OBJC_METACLASS_$_GLKView", referenced from: 
    _OBJC_METACLASS_$_GMSEntityRendererView in GoogleMaps(GMSEntityRendererView.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Odpowiedz

26

Mam nadzieję, że rozwiązałeś to już teraz. Problem, na który natrafiłeś, polega na tym, że nie masz GLKit.framework powiązanego z fazami kompilacji.

Powinieneś sprawdzić stronę Getting Started, aby uzyskać pełną listę instrukcji instalacji, ale odpowiedni krok znajduje się poniżej.

Otwórz zakładkę Fazy budowy, oraz w link binarnych z bibliotek, należy dodać następujące ramy:

  • AVFoundation.framework
  • CoreData.framework
  • CoreLocation.framework
  • CoreText. framework
  • GLKit.framework
  • ImageIO.framework
  • libC++. Dylib
  • libicucore.dylib
  • libz.dylib
  • OpenGLES.framework
  • QuartzCore.framework
  • SystemConfiguration.framework
+0

działało dobrze ..... – Babul

+0

niesamowite, dzięki !! – davvilla

+0

Zadziałało, dziękuję –

1

Wyżej Konstrukcje Plus

Zauważyłem śledzenie zmian po uaktualnieniu aplikacji korzystającej ze starszego pakietu SDK do map Google, który został zainstalowany ręcznie:

Konieczne jest połączenie z CoreBluetooth.framework i Accelerate.framework w fazie budowy -> Pakiet linków z bibliotekami. Flaga -all_load pod "Inne flagi Linker" spowoduje błędy "duplikatu symbolu". (Zamiast tego użyj -ObjC.) Jeśli używasz metody instalacji CocoaPods (zgodnie z ich bieżącymi instrukcjami), powinna ona wymagać odpowiednich frameworków, ale nadal będzie popsuta przez -all_load.

Powiązane problemy