1、背景
经常使用linux交叉工具类的朋友都知道,在已安装交叉编译工具链后要交叉编译得到linux可执行文件只需要运行如下类似的命令(如编译hello.c生成hello可执行文件):
arm-linux-gcc hello.c -o hello
hello.c的代码非常简单,完整的代码如下:
#include <stdio.h>
int main() {
printf("hello,world!");
return 0;
}
但是在android上安装ndk后直接运行如上的命令编译时会提示找不到一堆头文件,如:
stdio.h: No such file or directory
本文介绍几种解决该问题的简单方法。
2、解决办法
1、下载ndk
首先下载android提供的ndk工具包,如本文下载的工具包名为android-ndk32-r10b-linux-x86_64.tar.bz2。下载后解压可以得到android-ndk-r10b类似的工具目录。
2、方法一、调用命令时指定需要的头文件或库
使用--sysroot指定编译时使用的头文件和库文件。比如更新后的编译命令为:
arm-linux-androideabi-gcc --sysroot=$NDK_BASE/platforms/android-19/arch-arm hello.c -o hello