Christian Toniolo
Christian Toniolo

Reputation: 61

Undefined symbols for architecture i386: "_GLKMatrix3Identity", referenced from:

I try to import google maps SDK and i add all the library like explained on the google maps site. Please help me! :)

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)

Upvotes: 6

Views: 7301

Answers (2)

Aadil Khan
Aadil Khan

Reputation: 39

Above Frameworks Plus

I noticed the following changes when I upgraded an app that was using the older Google maps SDK that had been installed manually:

Need to link to CoreBluetooth.framework and Accelerate.framework in Build Phases -> Link Bundle with Libraries. The -all_load flag under "Other Linker Flags" will cause "duplicate symbol" errors. (Use -ObjC instead.) If you use the CocoaPods method of installation (per their current instructions), it should take of the required frameworks but it'll still get messed up by -all_load.

Upvotes: 1

Brian Nickel
Brian Nickel

Reputation: 27560

Hopefully you've solved this by now. The issue you were running into is that you don't have GLKit.framework linked in your build phases.

You should check out the Getting Started page for the full list of setup instructions, but the relevant step is below.

Open the Build Phases tab, and within Link Binary with Libraries, add the following frameworks:

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

Upvotes: 29

Related Questions