【发布时间】: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
我来个小例子:
- 项目本身放置到 D:/Projects/mobile/workspace/
- Boost(精简版)放置到 D:/Projects/mobile/workspace/mesf/jni/tools
- 简单文件“mesf.cpp”包含#include,文件被放置到D:/Projects/mobile/workspace/mesf/jni/
- D:/Projects/mobile/workspace/mesf/jni/Application.mk 包含条目 APP_STL := gnustl_static
- D:/Projects/mobile/workspace/mesf/jni/Android.mk 包含条目 **LOCAL_CFLAGS += -I$(LOCAL_PATH)/tools/ 用于提升路径。**
- 如果没有特定的 boost 包含,它可以成功编译,并且可以在目标手机上远程调试源代码(作为共享对象)。
- 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
- 但如果我更改为 LOCAL_CFLAGS += -Ijni/tools/,#include for boost 就可以了!
- 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 **李>
- 我们可以在 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