Question

This is the error output I am getting when I try to run the project.

Undefined symbols for architecture i386:
"_CATransform3DMakeScale", referenced from:
  -[AMSlideMenuMainViewController viewWillAppear:] in AMSlideMenuMainViewController.o
  ___54-[AMSlideMenuMainViewController openLeftMenuAnimated:]_block_invoke in AMSlideMenuMainViewController.o
  ___55-[AMSlideMenuMainViewController openRightMenuAnimated:]_block_invoke in AMSlideMenuMainViewController.o
  ___55-[AMSlideMenuMainViewController closeLeftMenuAnimated:]_block_invoke in AMSlideMenuMainViewController.o
  ___56-[AMSlideMenuMainViewController closeRightMenuAnimated:]_block_invoke in AMSlideMenuMainViewController.o
  -[AMSlideMenuMainViewController configure3DTransformForMenu:panningView:] in AMSlideMenuMainViewController.o

ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
enter code here

What does this mean and how can I get rid of it? Thanks for any help.

Was it helpful?

Solution

XCode's warning you that a class called in other classes can't be found in either your custom classes, or the linked frameworks.

As a rule of thumb, every time you include a custom control or module in your project, double check that all its dependencies are included too.

So, in your case, AMSlideMenuMainViewController is calling CATransform3DMakeScale from CoreAnimation's framework (deduced from CA prefix), which is included in QuartzCore, but it's not included in your project configuration yet.

One way to fix it is to click on your project file, in the summary tab, and add the QuartzCore framework to the list of framework.

Then, double-check that the header of QuartzCore is imported where you need it.

For you, I guess in AMSlideMenuMainViewController:

#import <QuartzCore/QuartzCore.h> //At the top of your file

Then, clean and build and it should be fine!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top