2010-04-27 30 views
0

我是新来的苹果的发展,对于我的统一的项目,我尝试开发使用PocketSphinx识别语音命令的iPhone应用程序...PocketSphinx,文件不是iPhone设备中需要的体系结构,但在模拟器中工作?

我以前在PocketSphinx SVN和SphinxBase可用“build_for_iphoneos.sh”脚本。程序工作没有任何问题,当我在模拟器上尝试它,今天我尝试部署在设备上,它给我这个错误?任何人都可以帮我解决这个问题吗?

错误:

ld: warning: in /Users/me/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/lib/libpocketsphinx.a, file is not of required architecture 
ld: warning: in /Users/me/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/lib/libsphinxbase.a, file is not of required architecture 

和引用功能的其他报告未定义错误!

有帮助吗?谢谢。 Jeevan

回答

1

库已解决... 当按照Sphinx给出的指示时,每个人都将阅读其自述文件中提到的顺序。那就是:

./build_for_iphoneos.sh simulator 
./build_for_iphoneos.sh device 

由于仿真是基于i386架构,称“./build_for_iphoneos.sh装置”,它仍然保持以前的HT缓存和忽略的ARMv6架构的改变......当

为了解决这个问题, 呼叫“使清洁”他们之间......

./build_for_iphoneos.sh simulator 
make clean 
./build_for_iphoneos.sh device 

希望这会帮助别人...... 谢谢“卢修斯”对他的帮助。我已经学会了一些前列工具... :)

+0

感谢您的通知,我将更新自述文件。我一直在努力改进iPhone上的Sphinx支持。 – 2010-04-30 12:48:44

+0

嗨,Jeevan,我希望你对我的项目有所投入。 HTTP:// github上。com/KingOfBrian/VocalKit/- 我将继续研究更多的功能和文本到语音。希望这可以帮助! – 2010-05-01 14:20:48

+0

抱歉,一直忙于我的项目演示等...祝您好运,简化了事情...... – Jeevan 2010-05-13 01:55:37

0

通常,当您需要构建arm时,只有为英特尔构建的静态库时才会出现此错误。如果您使用lipo工具,则可以为这两种体系结构都设置一个胖二进制文件。

编辑:糟糕,我的意思是“lipo”工具,它被自动校正到嘴唇上。要创建无论是iPhone OS设备(ARM6/ARM7)和模拟器(I386)脂肪二元iPhone静态库,使用这样的:

lipo -output libOAuthConsumerTouch.a -create Release-iphoneos/libOAuthConsumerTouch.a Release-iphonesimulator/libOAuthConsumerTouchSim.a 

这是一个名为 “OAuthConsumerTouch”

+0

感谢您的回复,请参阅我对此开发环境的全新新闻。你能否给我一些关于如何使用这个“唇形工具”的更多细节或网站? – Jeevan 2010-04-27 00:40:05

+0

再次感谢您的回复...我开始理解这个扁平的二进制文件..有一个问题再次使用lipo,看到我的发布和模拟器文件我们在i386拱格式! build_for_iphoneos.sh假设在“armv6”中构建“设备”版本,但由于某种原因,它并没有这样做!我证实了这一点“lipo -info ”......如果可以的话,看看这个脚本plz:http://pseudogreen.org/bzr/sandbox/iphone/build_for_iphoneos – Jeevan 2010-04-27 01:37:07

+0

我不明白足够的shell脚本,并且可能需要检查脚本的参数,以了解为什么它不起作用。 – lucius 2010-04-27 16:47:50