我最近开始为Android编译几个C应用程序。我使用以下伪指令成功完成了图像转换软件:
autoconf configure.ac > configure
,使用arm-linux-androideabi运行configure with CFLAGS,make和make install)我现在正在尝试为用C编写的OCR库执行此操作。我遇到的问题是该库没有configure,configure.guess或configure.sub。它只有一个makefile。
我对C不太熟悉,但是在这种情况下我应该遵循哪些不同的流程?
./configure步骤:
CFLAGS=’-march=armv7-a –mfloat-abi=softfp’ ./configure –prefix=/home/user/Downloads/install/usr/local –host=arm-eabi –enable-shared=no –with-modules --enable-delegate-build
答案 0 :(得分:0)
根据这篇文章:What does a typical ./configure do in Linux?
仅配置对系统依赖性的检查(如果它们丢失则退出),检查您所在系统的类型,然后创建一个makefile。因为你已经有了一个makefile,所以你应该已经可以执行make install了。
答案 1 :(得分:0)
在这种情况下,我应该遵循哪些不同的流程?
不是真的。我的意思是,如果您计划使用Android独立工具链,那么您需要做的就是:
--platform=android-9
PATH
(为方便起见)export SYSROOT=/tmp/my-android-toolchain/sysroot
(为方便起见)export CC="arm-linux-androideabi-gcc --sysroot $SYSROOT"
)和归档器,如果您定位静态库(export AR=arm-linux-androideabi-ar
)那么一切都取决于你的Makefile是如何编写的,即目标是什么?有影响的环境变量?但实际上,如果默认目标符合您的需要,您需要做的就是在覆盖C标志的同时运行make
以设置目标体系结构(此处为ARMv7):
make CFLAGS="-march=armv7-a"
就是这样。如果需要,请重复其他拱门(armeabi
,x86
等)。
您可以看到jsmn的完整示例 - 用C编写的轻量级JSON解析,此处为:http://git.io/ndk-jsmn。
我还有一组slides,涵盖了您可能会觉得有用的主题。