2010-04-27 34 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