我使用我的内 Android.mk 的swig。我直接依靠 $PATH 变量来引用它来包含其可执行文件的路径。
问题是$PATH变量会有所不同,具体取决于 android-ndk 工具的运行位置。
背景
在我的 Android.mk 文件中:
# some stuff ...
@echo "$(PATH)"
swig # swig parameters here...
# more stuff ...
从终端,我们看到系统路径包括要切换的路径:
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。
任何想法如何做到这一点?
谢谢!
在我看来,无论流程是从终端还是从 GUI(启动板、聚光灯等)启动,环境变量都可能不同。
前者将使用bashrc
(或其他与 shell 相关的启动文件)中设置的PATH
,而另一个则不会。
我想您可能会在以下问题中找到有关如何更改启动守护程序的环境变量的有趣信息:
在 OS X 中设置环境变量?