通过 ./binfile 执行的 bin 文件与“常规” bin 之间有何区别?

通过 ./binfile 执行的 bin 文件与“常规” bin 之间有何区别?

我在 Ubuntu 上使用 C 语言编写了一个程序make。生成的 bin 文件可以通过以下方式执行,./binfilename但不能直接在构建的目录中执行。我如何将其“转换”为可以复制到的 bin 文件,/usr/bin以便可以在“系统范围内”执行它,或者这是否需要不同的构建过程?

答案1

这并不是因为二进制文件之间存在差异,而是因为二进制文件所在的目录不在您的PATH.

在 Windows 上,当前目录始终是 的一部分PATH。但是,这并不安全(想象一下有人将rm命名的副本放在ls某个目录中)。

因此,您需要将二进制文件放在您的某个目录中PATH(请参阅echo $PATH),或者必须将该特定目录添加到您的目录中PATH。例如,添加类似

PATH="$PATH:/home//bin"

到你的~/.bash_rc

相关内容