gpt4 book ai didi

terminal - 无法运行 C 程序 : "a.out: command not found"

转载 作者:行者123 更新时间:2023-12-03 21:15:38 25 4
gpt4 key购买 nike

我已经用 C 编写了我的第一个程序。我编译了它,然后它在桌面上放置了一个名为 a.out 的文件。 (正如我正在阅读的书告诉我的那样),但是当我输入命令 a.out进入终端并运行它说-bash: a.out: command not found .为什么这么说?

根据 Stephen Kochan 的“Programming in C”一书,我相信我所做的是正确的,因为我在正确的目录(桌面)中。它还说,如果文件不在正确的路径中,我可以将其添加到路径中或运行 ./a.out ,这个方法有效并运行程序,这是为什么呢?

最佳答案

当您键入命令名时(a.out 在这方面与任何其他命令名没有区别),shell 会搜索具有该名称的可执行文件。它使用存储在您的$PATH 中的目录名称列表执行此搜索。环境变量。

您可以查看您当前的$PATH通过键入

echo $PATH

在你的 shell 提示符下。典型值可能类似于
/usr/bin:/bin

尽管您可能还会有一些其他目录。

由于 a.out位于您当前的工作目录中(输入 pwd 以查看是哪个目录),并且您当前的工作目录可能不在您的 $PATH 中, 你不能通过输入 a.out 来执行它.

由于您可以将当前目录称为 . ,您可以(并且应该)通过键入来执行命令
./a.out

注意:您可以拥有 .在您的 $PATH ,但这样做被认为是一个坏主意,因为它很容易意外地执行随机命令。如果 .在您的 $PATH 前面,假设我请你到 cd到我的目录并输入 ls -- 但我安装了一个名为 ls 的文件那会做一些讨厌的事情。把 .在您的 $PATH 末尾减轻了这种风险,但并没有完全消除它。最好养成在文件名前加上 ./的习惯。如果你想从当前目录执行它。

(我忽略了别名、函数和 shell 内置命令也可以通过这种方式执行的事实。)

关于terminal - 无法运行 C 程序 : "a.out: command not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23024016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com