2011-03-17 79 views
2

我試圖構建libsrtp,以便我可以在iPhone上使用它(我打算將它與libav的RTP實現一起使用)。正確的配置爲iPhone構建libsrtp?

我的配置:

./configure --build='arm-apple-darwin9'

我得到的,當我嘗試調用srtp_init()警告:

file was built for unsupported file format which is not the architecture being linked (armv7)

其次錯誤:

"_srtp_init", referenced from:

+[Manager initialize:] in Manager.o

Symbol(s) not found

有誰知道用於正確構建庫的正確配置?

回答

1

問題是它不是爲ARM構建的(或者不適合正確的ARM;您需要查看哪些編譯器正在使用哪些選項進行bing調用,並將其與您熟悉的某個選項進行比較)。你用autoconf重建過配置嗎?請參閱GNU build system wiki頁面以獲取有關如何重新配置​​其他系統/處理器的構建的起點。如果你在configure.in或libsrtp的其他部分發現了一個錯誤,請告訴我 - 我是一名使用checkin privs的作者。

0

有關交叉編譯庫iOS的一般準則我推薦這篇文章: http://tinsuke.wordpress.com/2011/02/17/how-to-cross-compiling-libraries-for-ios-armv6armv7i386/

一樣的傢伙還寫了一個更新版本的iOS 5,這是一個特定於tesseract庫,但總的原則是相同: http://tinsuke.wordpress.com/2011/11/01/how-to-compile-and-use-tesseract-3-01-on-ios-sdk-5/

使用這些作爲指南我已經成功地編譯了一些庫。關鍵要注意的是,你必須禁用編譯共享二進制文件。另外我建議使用clang而不是gcc