Я прочитал всю важную документацию 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 / для пути повышения. **
- Без специального повышения, он успешно компилируется, и исходный код (как общий объект) можно удаленно отлаживать на целевом телефоне.
- Вывод на консоль после запуска ndk-build:
...- I / cygdrive / d / Projects / mobile / workspace / mesf / jni / tools / -fexceptions -frtti -DBOOST_THREAD_LINUX -DBOOST_HAS_PTHREADS -D_ arm _ -D_REENTRANT -D_ASDHTXTBT Ва, - noexecstack -fexceptions -frtti -O0 -g
- Но если я изменю на LOCAL_CFLAGS + = -Ijni / tools / , то #include для boost работает!
- Вывод на консоль после запуска ndk-build:
** - Ijni / tools / -fexceptions -frtti -DBOOST_THREAD_LINUX -DBOOST_HAS_PTHREADS -D_ arm _ -D_REENTRANT -D_GLIBCXX__PTHREADS -DBOOST_HAS_GETTexestaxOfeTofOfeTofOFOFF
- Мы видим на выводе консолида, что путь изменился с -I / cygdrive / d / Projects / mobile / workspace / mesf / jni / tools / на -Ijni / tools /
Рекомендуемый метод от Google: LOCAL_CFLAGS + = -I $ (LOCAL_PATH) / tools / (AFAIK), но он не работает!
Мой вопрос, это ошибка ndk-build, cygwin или Sequoyah или ошибка по неопределенной переменной пути от меня?
У кого-нибудь есть идея?