2011-03-17 96 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