1、背景
经常使用linux交叉工具类的朋友都知道,在已安装交叉编译工具链后要交叉编译得到linux可执行文件只需要运行如下类似的命令(如编译hello.c生成hello可执行文件):
arm-linux-gcc hello.c -o hellohello.c的代码非常简单,完整的代码如下:
#include
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
如下为下载ndk后使用这种方法的完整流程如下:
(1)、进入android-ndk-r10b目录;
cd android-ndk-r10b
(2)、设置要使用的交叉工具链的路径到环境变量中,如使用4.6版本的ndk命令如下: