在链接使用SDK 3.0创建的静态库时,使用Base SDK 3.0构建iPhone SDK 2.x目标

在链接使用SDK 3.0创建的静态库时,使用Base SDK 3.0构建iPhone SDK 2.x目标

问题描述:

我在使用iPhone SDK 3.0构建的静态库Pinch Analytics r64在我的应用程序中正确链接时遇到了问题,该应用程序是针对iPhone OS 2.0的。这似乎是一个相当普遍的问题, Pinch Analytics'网站甚至还有一整页专门回答这个问题。

I'm having a problem getting Pinch Analytics r64, a static library built with iPhone SDK 3.0, to link properly in my application which is targetting iPhone OS 2.0. This seems to be a fairly common problem, and Pinch Analytics' site even has an entire page devoted to answering this question.

基本上他们说将你的项目的Base SDK设置为3.0,并将你的iPhone OS部署目标设置为SDK 2.0(或者你正在瞄准的任何版本)。我已经采取了这两个步骤,验证我没有覆盖目标设置中的任何项目设置,已经清理了我的目标,但我仍然收到以下链接器错误:

Basically, they say to set your project's Base SDK to 3.0 and set your iPhone OS Deployment Target to SDK 2.0 (or whatever version you're targetting). I have taken both of these steps, verified that I'm not overriding any of the project settings in my target settings, have cleaned my targets, but still I'm getting the following linker errors:


未定义的符号:

___ restore_vfp_d8_d15_regs,
引自:
- [Beacon connectionDidFinishLoading:] in
libPMAnalytics-r64.a(Beacon.o)
- [beacon connection:didFailWithError:] in
libPMAnalytics-r64.a(Beacon.o)

___ save_vfp_d8_d15_regs,引用自:
- [beacon connectionDidFinishLoading:] in
libPMAnalytics-r64.a(Beacon。 o)

- [bacon connection:didFailWithError:] in
libPMAnalytics-r64.a(Beacon.o)
- [Beacon connection:didReceiveData:] 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) -[Beacon connection:didReceiveData:] in libPMAnalytics-r64.a(Beacon.o)`

等。

我来到我的智慧结束;任何建议都会很棒!

I'm coming to my wit's end here; any suggestions would be great!

在收到Pinch Media团队的几封电子邮件后,问题就解决了。基本上,您应该永远不要使用DROPDOWN选择不同的活动SDK

After a few emails with the Pinch Media team, the problem is solved. Basically, you should NEVER USE THE DROPDOWN TO SELECT A DIFFERENT ACTIVE SDK.

在项目信息中将Base SDK设置为3.0。在项目信息中将iPhone OS部署目标设置为2.0(或您要定位的任何版本)。将设备/配置/目标下拉列表设置为Base SDK(3.0),否则Xcode将使用与所选Active SDK关联的OLD工具链。

Set Base SDK to 3.0 in Project Info. Set iPhone OS Deployment Target to 2.0 (or whichever version you're targetting) in Project Info. Leave the device/configuration/target dropdown set to the Base SDK (3.0), or Xcode will use the OLD toolchain associated with the selected "Active SDK".