我正在尝试构建libsrtp,以便我可以在iPhone上使用它(我打算将它与libav的RTP实现一起使用)。
我的配置:
./配置 --build = '臂苹果darwin9'
我尝试调用srtp_init()时收到的警告:
文件是为不受支持的文件构建的 格式不是架构 被联系起来(armv7)
接着是错误:
“_ srtp_init”,引自:
在Manager.o中+ [经理初始化:]
未找到符号
有没有人知道正确构建库的正确配置?
答案 0 :(得分:1)
问题在于它不是为ARM构建的(或者不适用于正确的ARM;您需要查看哪些编译器使用哪些选项进行调用,并将其与您知道正在运行的编译器进行比较)。你用autoconf重建配置了吗?有关如何为其他系统/处理器重新配置构建的起点,请参阅GNU build system wiki页面。
仅供参考,如果您在configure.in或libsrtp的其他部分发现错误,请告诉我 - 我是checkin privs的作者。
答案 1 :(得分: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
。