【问题标题】:Why LOCAL_CFLAGS += -I$(LOCAL_PATH)/tools/ doesn't work, but LOCAL_CFLAGS += -Ijni/tools/ works properly为什么 LOCAL_CFLAGS += -I$(LOCAL_PATH)/tools/ 不起作用,但 LOCAL_CFLAGS += -Ijni/tools/ 工作正常
【发布时间】:2011-07-21 15:47:38
【问题描述】:

我已阅读 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_CFLAGS += -I$(LOCAL_PATH)/tools/ 用于提升路径。**
  6. 如果没有特定的 boost 包含,它可以成功编译,并且可以在目标手机上远程调试源代码(作为共享对象)。
  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/

google 推荐的方法是 LOCAL_CFLAGS += -I$(LOCAL_PATH)/tools/ (AFAIK),但是不行!

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

有人有想法吗?

【问题讨论】:

    标签: android-ndk


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 2014-09-15
      • 2017-05-03
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      相关资源
      最近更新 更多