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

时间:2011-06-17 09:46:35

标签: android-ndk

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

环境信息: WinXP(SP3),Cygwin> 1.7,Eclipse 3.6.2,Sequoyah原生支持,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_CFLAGS + = -I $(LOCAL_PATH)/ tools / 。**
  6. 如果没有特定的boost include,它会成功编译,并且远程可以在目标手机上调试源代码(作为共享对象)。
  7. ndk-build运行后的控制台输出: ...- 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 -fexceptions -frtti -O0 -g
  8. 但是如果我改为 LOCAL_CFLAGS + = -Ijni / tools / ,#include for boost就可以了!
  9. ndk-build运行后的控制台输出: ** - Ijni / tools / -fexceptions -frtti -DBOOST_THREAD_LINUX -DBOOST_HAS_PTHREADS -D_ arm _ -D_REENTRANT -D_GLIBCXX__PTHREADS -DBOOST_HAS_GETTIMEOFDAY -Wa, - noexecstack -fexceptions -frtti -O0 -g **
  10. 我们可以在consolde输出上看到路径已从-I / cygdrive / d / Projects / mobile / workspace / mesf / jni / tools /更改为-Ijni / tools /
  11. 谷歌推荐的方法是LOCAL_CFLAGS + = -I $(LOCAL_PATH)/ tools /(AFAIK),但它不起作用!

    我的问题是,这是一个ndk-build,cygwin或Sequoyah错误或来自我的未定义路径变量的错误?

    有人有想法吗?

1 个答案:

答案 0 :(得分:1)

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