我是 C 语言的新手。我现在正在学习一门课程,但在运行文件进行测试时遇到了一个小问题。
我打开了 gedit 并写下了以下代码行:
int main(int argc, char *argv[])
{
puts("Hello world.");
return 0;
}
当我尝试使用此命令授予正确的权限后运行它时
chmod +x file.c
并使用此命令运行
./file.c
这些行显示在终端中
./file.c: line 1: syntax error near unexpected token `('
./file.c: line 1: `int main (int argc, char *argv[])'
哪里有问题 ??
答案1
您需要先编译程序,然后才能运行它。为此,您需要一个 C 编译器,例如gcc
。您可以使用以下命令安装它:
sudo apt-get install gcc
然后,编译你的程序,创建一个名为的可执行文件file
:
gcc -Wall -o file file.c
然后您就可以运行:
./file
答案2
Fabrice Bellard 的 TCC 似乎仍在存储库中。它可以在一种解释器模式下运行,从而可以实现以下功能:
你可以像楼主那样,通过添加以下代码来制作一个简单的 C 文件可执行文件
#!/usr/bin/tcc -run
到文件的最顶部。
-
它还通过在末尾添加一个空选项(仅减号)来接受来自 STDIN 的输入。
$ /usr/bin/tcc -run - <<EOF
> #include <stdio.h>
> int main()
> {
> printf("Hello World\n");
> return 0;
> }
> EOF
Hello World
或echo
echo '#include <stdio.h> int main(){printf("Hello World\n");return 0;}' | /usr/bin/tcc -run -
或者直接运行/usr/bin/tcc -run -
你的代码并开始运行CTRL + D
看起来没用而且很愚蠢,但最后一种方法是最快的(对我来说,YMMV 等),用于检查大型库中的函数、查找常量的确切值等。而且它很小(180k),这使得它非常适合 Raspberry-Pi。
主要缺点:停止开发(最新版本是 2013 年的)。
答案3
据我所知,您必须在执行 C 代码之前对其进行编译,如下所示:
gcc file.c
答案4
我有一个小问题,即运行文件
回答你的问题:
哪里有问题 ??
只需说明您还不能运行可执行文件,因为您还没有生成它。您的文件,file.c
是用“C”语言编写的“源代码”。此源代码不是可执行的,因为 C 语言被设计为易于理解的可编写方式(至少以人类的标准来说“容易”……即使如此,一开始也不容易 - 但它会变得更容易)。然后,您编写的(源)代码将被转换为计算机可以轻松读取的形式。此过程称为“编译”。编译会创建一个文件,该文件可执行文件计算机。这是你没有完成的步骤。如果你输入
which gcc
然后您将得到类似这样的信息,说明/usr/bin/gcc
您的系统上已经安装了 gcc。如果您什么也没有得到,说明您没有安装。如果您没有安装 gcc,那么您可以通过以下方式获取 gcc(前提是您拥有正确的权限):
sudo apt install gcc
(注意:如果你使用的是旧版本的 Linux 发行版,apt 可能不起作用 - 你可以用 替换它apt-get
)
如果你做然后gcc
继续输入:
gcc file.c
你会发现可执行文件名为的文件a.out
神奇地出现在您的目录中。这是您一直在寻找的文件。使用以下命令运行它
./a.out
其他答案还有其他内容-o
,您可以通过输入以下内容访问-Wall
手册来了解:gcc
man gcc
这应该可以让你坚持几年...欢迎来到编码 - 尽情享受吧!