0

哇,让我首先说我已经数不清我在这个网站上找到了多少答案。你们真棒!

所以,我发布的第一个问题是相当基本的,所以我希望它没有受到好评。我确实在谷歌和这里搜索了答案,但没有找到答案。

我刚刚在 linux 上创建了一个带有 code:blocks 的控制台应用程序,编译它然后在 code:blocks 中运行。工作得很好。然后我打开 linux bash shell,cd 到二进制文件所在的位置,然后尝试从那里运行它,没有骰子。我的一个 linux 伙伴过来告诉我尝试 ./ 在它之前。维奥拉,这行得通。我傻眼了,因为我认为 ./ 只需要执行 shell 脚本。我检查了 g++ 构建的二进制文件的文件权限,它们是:-rwxrwxr-x

我找到了其他关于使用 code:blocks 构建 Hello World 应用程序的教程,他们还说使用 ./ 在命令行上执行

为什么会这样?另外,如何构建控制台应用程序或任何其他二进制应用程序,这样 ./ 不需要执行它?我假设有可能以某种方式看到绝大多数内置的 linux 命令,例如 grep 等,不需要 ./ 来执行。

多谢你们。

4

1 回答 1

0

要在类 UNIX 系统上运行可执行文件,您需要了解路径解析。如果可执行文件的路径不包含在PATH环境变量中(.有时不包含),您需要自己指定。

通过附加.PATH,像这样:

export PATH=$PATH:.

您可以从当前工作目录运行可执行文件,而无需添加./. 但是请注意,这在多用户系统中可能是不安全的,因为其他用户可以提供可执行文件供您在组或全局可写目录中运行,而无需您的明确许可。

于 2013-03-19T14:38:48.627 回答