我正在开发一个使用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。我会不断更新,以防其他人偶然发现这个。
答案 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安装到默认文件夹