使用cygwin编译android的库,编译时出现头文件找不到,该怎么解决

使用cygwin编译android的库,编译时出现头文件找不到
本帖最后由 Tilter 于 2015-01-04 13:34:17 编辑
在win7 c盘上上安装了cygwin,并且也放了android的ndk,在cygwin的.bash_profile中做了如下设置:
ndk=/cygdrive/C/android/android-ndk-r9d
export ndk
-----------------------------------------------------------------------------------------------------------------------------------------
在另外一个目录写了一个测试的test.c,里面只有一句代码:
#include <utils/Log.h>
-----------------------------------------------------------------------------------------------------------------------------------------
写了一个makefile文件,部分内容如下:
NDK_BASE =/cygdrive/c/android/android-ndk-r9d
ANDROID_BASE=/cygdrive/c/android/android-src/x86/Intel_x86_sysimg_4.4_20131206

INC += -I$(NDK_BASE)/platforms/android-19/arch-arm/usr/include \
-I$(ANDROID_BASE)/system/core/include \
-I$(ANDROID_BASE)/frameworks/base/include

===============================================================================
在cygwin中cd到了makefile所在的目录,运行make,出现了如下错误:
/cygdrive/c/android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc -march=armv7-a -mfpu=vfp -mfloat-abi=softfp -fpic -mthumb-interwork -O2 -DANDROID -c -I/cygdrive/c/android/android-ndk-r9d/platforms/android-19/arch-arm/usr/include -I/cygdrive/c/android/android-src/x86/Intel_x86_sysimg_4.4_20131206/system/core/include -I/cygdrive/c/android/android-src/x86/Intel_x86_sysimg_4.4_20131206/frameworks/base/include ../../src/test..c -o test..o
../../src/test..c:2:23: fatal error: utils/Log.h: No such file or directory
 #include <utils/Log.h>
                       ^
compilation terminated.
makefile:35: recipe for target 'test..o' failed
make: *** [test..o] Error 1

我如果把INC改成相对路径:
INC = -I../../../../android/android-ndk-r9d/platforms/android-9/arch-arm/usr/include \
  -I../../../../android/android-src/x86/Intel_x86_sysimg_4.4_20131206/system/core/include/ \
  -I../../../../android/android-src/x86/Intel_x86_sysimg_4.4_20131206/frameworks/base/include

编译就没有问题,请问诸位知道这是什么原因吗?



------解决思路----------------------
ANDROID_BASE=/cygdrive/c/android/android-src/x86/Intel_x86_sysimg_4.4_20131206 
这个路径下面应该没有头文件 <utils/Log.h>

你要include 头文件应该在 NDK_BASE  =/cygdrive/c/android/android-ndk-r9d 下面的platform相关的平台下