2015-02-01 3 views
1

Я использую NDK, и мне трудно получить родительский каталог в пути include. Я попытался это:Как включить родительский каталог включить путь в Android.mk?

LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. 

Но это не работает, по-видимому, .. не обрабатывается, как я бы ожидать. Я побежал make -n, чтобы увидеть сформированную команду, которая включает в себя то, что я хочу:

-I/Users/me/android/workspace/jni/module/popt/.. 

Но это не удается, хотя, если я вручную изменить его вместо этого:

-I/Users/me/android/workspace/jni/module 

Он отлично работает. Что я должен добавить в файл Android.mk, чтобы включить родительский каталог в путь поиска, не используя ..?

Проблема заключается в том, что popt является символической ссылкой, поэтому родительский каталог .. не является module.

ответ

1

Ничто не будет расширять .. и фактически модифицировать более ранние части пути - это почти то же самое в любой системе сборки, если вы укажете относительный путь с ...

Почему нет -I/Users/me/android/workspace/jni/module/popt/.. Аналогичный результат: -I/Users/me/android/workspace/jni/module? Является ли ссылка popt символической ссылкой на другое место? В этом случае я думаю, что решение будет заключаться в том, чтобы определить отдельную переменную в jni/module/Android.mk, например MODULE_PATH := $(LOCAL_PATH), и использовать $(MODULE_PATH) вместо $(LOCAL_PATH)/.. в другом файле Android.mk.

0

вы можете использовать "шаблон", например:

PARENT_DIR_PATH := $(wildcard ..)