android ndk - 为什么LOCAL_CFLAGS += -I$(LOCAL_PATH)/tools/ 不起作用,但LOCAL_CFLAGS += -Ijni/tools/ 工作正常



我已经阅读了Android.mk文件中所有重要的ndk文档,但找不到关于我的问题的信息。

环境信息:WinXP(SP3)、Cygwin>1.7、Eclipse 3.6.2、Sequoyah Native Support、ndk-5c、sdk-11、ADT-11

我来举一个小例子:

  1. 项目本身被放置到D:/Projects/mobile/workspace/
  2. Boost(精简版)放在D:/Projects/mobile/workspace/mesf/jni/tools
  3. 简单文件"mesf.cpp"包含#include,该文件被放置到D:/Projects/mobile/workspace/mesf/jni/
  4. D:/Projects/mobile/workspace/mesf/jni/Application.mk保存条目APP_STL:=gnustl_static
  5. D:/Projects/mobile/workspace/mesf/jni/Android.mk保存升压路径的条目**LOCAL_FLAGS+=-I$(LOCAL_PATH)/tools/**
  6. 如果没有特定的boost-include,它可以成功编译,并且源代码(作为共享对象)可以在目标手机上远程调试
  7. ndk构建运行后的控制台输出:-I/cygdrive/d/Projects/mobile/workspace/mesf/jni/tools/-fexceptions-frtti-DBOOST_THREAD_LINUX-DBOOST _HAS_PTHREADS-d_arm_-d_REENTRANT-d_GLIBCXX__PTHREADS-DBOOST_HAS_GETTIMEOFDAY-Wa,--noexecstack-fexception-frtti-O0-g
  8. 但是,如果我更改为LOCAL_FLAGS+=-Ijni/tools/,则#include for boost有效
  9. ndk构建运行后的控制台输出:**-Ijni/tools/-fexceptions-frtti-DBOOST_THREAD_LINUX-DBOOSTR_HAS_PTHREADS-D_arm_-D_REENTRANT-D_GLIBCXX__PTHREAD-DBOO STR_HAS_GETTIMEOFDAY-Wa,--noexecstack-fexcessions-frti-O0-g**
  10. 我们可以在控制台输出中看到,路径已从-I/cygdrive/d/Projects/mobile/workspace/mesf/jni/tools/更改为-Ijni/tools/

谷歌推荐的方法是LOCAL_FLAGS+=-I$(LOCAL_PATH)/tools/(AFAIK),但它不起作用!

我的问题是,这是ndk构建、cygwin或Sequoyah错误,还是我的未定义路径变量的错误?

有人有主意吗?

这是一个项目失败!我已经用(ndk-5c)设置了一个新项目,包括旧项目的所有源内容,现在它可以工作了!

最新更新