如何将iOS AIR3 Native Extension for iOS链接到iOS框架?

时间:2011-10-17 16:48:17

标签: ios linker air native

我正在开发一个使用Accelerate.framework

的AIR3 iOS原生扩展程序

按照教程中提到的第一步,成功创建了.ane文件等。

当我运行最终打包命令(adt -package -target ipa-test ...)时,我收到以下错误:

ld warning: unexpected srelocation type 9
ld warning: unexpected srelocation type 9

......(重复几次)

Undefined symbols:
  "_vDSP_vsdiv", referenced from: ...
  "_vDSP_vsmul", referenced from: ...

......更像是这样的

ld: symbol(s) not found
Compilation failed while executing : ld64

我想这是因为当我在xcode中创建.a文件时,它无法将其静态链接到Accelerate.framework。

我想我需要告诉adt以某种方式链接它?可能在我正在创建.ane文件的阶段?或者也许我应该更改我的extension.xml文件?

不知道。真的找不到......

请告知。

UPDATE:这似乎是Adobe方面的一个错误,特别是Accelerate.framework。我会不断更新,以防其他人偶然发现这个。

2 个答案:

答案 0 :(得分:2)

我遇到了这个“srelocation”错误,因为包含的库(在我的案例中是AudioToolBox / OpenAL)被XCode视为共享库:它们不包含在我的库构建中(即使它是静态的)。我必须在Build Settings下将“Enable with Link Libing”设置为NO,然后错误消失了。也许这也可以解决你的问题...

答案 1 :(得分:2)

确保您使用的是最新的Flex 4.6 SDK。如果仍无法解决问题,请确保在项目设置中的Apple iOS构建包装的Native Extensions选项卡下正确指定了Apple iOS SDK。它应该是

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk

如果您将Xcode安装到默认文件夹