符号链接不使用目标工作目录
我创建了以下符号链接:
资料来源: /usr/local/android-ndk-r5/ndk-build
目的地: /usr/local/bin/ndk-build
但是,当我尝试从源目录使用ndk-build时,它会失败,因为它找不到脚本在源目录中所依赖的文件。
如何获得使用源目录作为工作目录的符号链接?
你不能,你需要制作一个包装脚本。
假设程序依赖于文件名来确定脚本(可能):
#!/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
在GNU Linux下调用执行程序时,会收到一些命令行参数,包括当前工作目录。
程序中的代码决定如何使用这些参数,因此代码决定程序是使用链接目录还是目标目录。
显然, ndk-build使用链接目录来查找自己的文件,因此您不得不创建某种包装器。
注意不要混淆当前工作目录(在其下运行命令, pwd
命令返回的目录)的“感知”与ndk-build用于查找自己的文件的目录的“感知”。