我已经阅读了所有重要的ndk文档到Android.mk文件,但找不到我的问题的信息。
环境信息:
WinXP(SP3),Cygwin> 1.7,Eclipse 3.6.2,Sequoyah原生支持,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 include,它会成功编译,并且远程可以在目标手机上调试源代码(作为共享对象)。
- 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 /
醇>
谷歌推荐的方法是LOCAL_CFLAGS + = -I $(LOCAL_PATH)/ tools /(AFAIK),但它不起作用!
我的问题是,这是一个ndk-build,cygwin或Sequoyah错误或来自我的未定义路径变量的错误?
有人有想法吗?