Creating an iPhone SDK 2.x with a base SDK 3.0 when linking static libraries created using the SDK 3.0

I had a problem getting Pinch Analytics r64, a static library created with the iPhone SDK 3.0, for the correct connection in my application, which is designed for iPhone OS 2.0. This seems like a pretty common problem, and the Pinch Analytics site even has a whole page dedicated to answering this question.

Basically, they say, to set the base SDK of the project to 3.0 and set the target deployment level of your OS to SDK 2.0 (or any other version that you are targeting). I took both of these steps, confirmed that I did not override any of the project settings in my target settings, cleared my goals, but still I got the following linker errors:

Undefined symbols:
"___restore_vfp_d8_d15_regs", referenced from: -[Beacon connectionDidFinishLoading:] in libPMAnalytics-r64.a(Beacon.o) -[Beacon connection:didFailWithError:] in libPMAnalytics-r64.a(Beacon.o)

"___save_vfp_d8_d15_regs", referenced from: -[Beacon connectionDidFinishLoading:] in libPMAnalytics-r64.a(Beacon.o) - [Beacon connection: didFailWithError:] in libPMAnalytics-r64.a (Beacon.o) - [Receive May ] in libPMAnalytics-r64.a (Beacon.o) `

and etc.

I will come to the end of my mind; any suggestions would be great!

+7
objective-c iphone xcode
source share
2 answers

After several letters with the Pinch Media team, the problem is resolved. Basically, you should NEVER USE DROPDOWN TO CHOOSE A VARIOUS ACTIVE SDK .

Install the Base SDK in 3.0 in Project Info. Set your iPhone OS deployment to 2.0 (or depending on which version you are targeting) in Project Info. Leave the device / configuration / target drop-down list set in the Base SDK (3.0), or Xcode will use the OLD binding associated with the selected “active SDK”.

+3
source share

Check your compiler. I suspect that you have a mismatch between the code compiled with LLVM-GCC4.2 and GCC4.0.

+4
source share

All Articles