符号链接不使用目标工作目录

我创建了以下符号链接:

资料来源: /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用于查找自己的文件的目录的“感知”。