我在 Android.mk 中使用swig。我直接依赖 $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 Studio 中运行 android-ndk 时,我得到以下 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 。
任何想法如何做到这一点?
谢谢!