无法从 shell 运行 C 程序

无法从 shell 运行 C 程序

我已经编写了我的第一个程序,典型的程序是用 Xcode 和 TextWrangler 计算三角形面积,然后我想运行它,但我不能。

当我尝试运行它时,终端说找不到命令每次…

MacBook-Pro:~ Gaspar$ /Users/Gaspar/Desktop/prova.c 
-bash: /Users/Gaspar/Desktop/prova.c: Permission denied
MacBook-Pro:~ Gaspar$ sudo /Users/Gaspar/Desktop/prova.c 
sudo: /Users/Gaspar/Desktop/prova.c: command not found

我该如何配置它以便我不需要一直进入目录?

答案1

该文件prova.c是源文件。它是纯文本,包含程序的源代码。编译完成后,将创建一个新文件prova(可能没有扩展名)。这是可执行文件(二进制文件),您可以从终端运行它。

shell 中的许多可执行文件随处可用,无需输入完整路径。例如,sudo实际上是/usr/bin/sudo,但 shell 会知道在 中搜索/usr/bin。但是,shell 不会自动找到您自己的程序。您必须告诉它它在哪里。

只需输入:

/Users/Gaspar/Desktop/prova

如果您不想写完整路径,只需在之前更改您的工作目录:

cd /Users/Gaspar/Desktop/

现在您可以像这样调用您的程序,其中.指定当前目录。您必须包括,./因为您的当前目录通常不在您的 shell 搜索可执行程序的路径列表中。

./prova

如果二进制文件未设置执行权限,则此操作可能不起作用。这是一个允许从终端运行文件的标志。如果您收到没有权限错误,添加执行权限:

chmod +x prova

现在,尝试使用 再次运行该文件./prova

答案2

gcc /Users/Gaspar/Desktop/prova.c -o Users/Gaspar/Desktop/prova
/Users/Gaspar/Desktop/prova

确保它已设置可执行标志(默认情况下应该有),如果没有设置:

ls -l Users/Gaspar/Desktop/prova

chmod +x Users/Gaspar/Desktop/prova

相关内容