我有一个跨平台的C库,我需要将它编译为* .so文件用于Android。该库由许多.c和.h文件组成,它使用自动工具作为其buid系统。 (./configure && make dep && make)。 Afaik,该库不依赖于其他库,除了libc和OpenSSL(应在Andriod上提供)之外。
我正在尝试找到最简单的方法(以阅读最快的术语或无需阅读数百页的手册,然后应用try && fail蛮力方法来完成任务),以源代码形式从我的机器中删除该库,并以.so的形式导入Android手机。最终将通过Java的本机库接口访问该库。为了进行开发,我的办公桌上同时装有Windows和Debian机器。
最佳答案
如果幸运的话,并且自动工具项目设置正确,则可以通过运行进行交叉编译(此示例是使用mingw对Windows进行交叉编译,我不知道Android的前缀是什么):
./configure --host=i586-pc-mingw32
然后,它将尝试查找前缀为
i586-pc-mingw32-
的编译器,因此i586-pc-mingw32-gcc
可能是找到并使用的第一个编译器。对于您的Android devkit,请查看编译器二进制文件的名称,并从中猜测主机值。