我创建了以下符号链接:
来源:/usr/local/android-ndk-r5/ndk-build
目的地:/usr/local/bin/ndk-build
但是,当我尝试从源目录使用 ndk-build 时,它会失败,因为它在源目录中找不到脚本所依赖的文件。
如何获取符号链接以使用源目录作为工作目录?
答案1
你不能,你需要制作一个包装脚本。
假设程序依赖文件名来确定脚本(可能):
#!/bin/sh
exec /usr/local/android-ndk-r5/ndk-build "$@"
假设程序依赖于当前工作目录(不太可能):
#!/bin/sh
cd /usr/local/android-ndk-r5
exec ./ndk-build "$@"
保存其中一个文件/usr/local/bin/ndk-build
并使其可执行:
sudo editor /usr/local/bin/ndk-build
sudo chmod 755 /usr/local/bin/ndk-build
答案2
在 GNU Linux 下调用执行程序时会收到一些命令行参数,包括当前工作目录。
程序中的代码决定如何使用这些参数,因此代码决定程序是否使用链接的目录或目标的目录。
显然ndk 构建使用链接的目录来查找其自己的文件,因此您被迫创建某种包装器。
注意不要混淆当前工作目录(在该目录下你的命令运行,即pwd
命令返回的目录)与命令使用的目录的“感知”ndk 构建找到它自己的文件。