Как управлять средой PATH, используемой в сборке Android NDK?
Я использую swig из моего Android.mk. Я ссылаюсь на него напрямую, полагаясь на переменную $PATH для указания пути к ее исполняемому файлу.
Проблема в том, что переменная $PATH отличается в зависимости от того, откуда запускается инструмент android-ndk.
Фон
В моем файле Android.mk:
# some stuff ...
@echo "$(PATH)"
swig # swig parameters here...
# more stuff ...
Из терминала мы видим системный путь, включающий путь к swig:
which swig
/usr/local/bin/swig
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
вопрос
Когда android-ndk запускается из Android Studio, я получаю следующее для PATH (обратите внимание: в нем отсутствует путь swig):
/usr/bin:/bin:/usr/sbin:/sbin
Это приводит к сбою моей сборки, потому что "swig" не распознается:
make: swig: Command not found
Однако, если я запускаю android-ndk непосредственно из терминала, то используемый путь PATH совпадает с моим системным путем, и сборка работает нормально:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:
Плохое решение
Да, я мог бы добавить путь к файлу Android.mk вручную:
export PATH:=/usr/local/bin/:$(PATH)
Однако я предпочел бы не определять конкретные пути для моей машины, зная, что вся команда использует этот файл.
Вопрос
Я бы предпочел, чтобы файл Android.mk использовал вместо меня системный PATH.
Есть идеи, как это сделать?
Спасибо!
1 ответ
На мой взгляд, переменные окружения могут отличаться, независимо от того, запущен ли процесс из терминала или из графического интерфейса (launchpad, spotlight,...).
Бывший будет использовать PATH
как установлено в bashrc
(или другие файлы запуска, связанные с оболочкой), а другой нет.
Я думаю, что вы можете найти интересную информацию о том, как изменить переменные среды для запуска deamon в следующем вопросе: