-5

有人可以向我解释什么是 a.out它以及它是如何工作的吗?这是我第一次使用 Unix (minix)。我有一个文件夹,其中包含两个文件filename.ctest.sh(包含以 ./a.out 和一些 f=values 开头的三行)。filename.c如果不是,我只想编译和执行?

4

4 回答 4

1

我使用 ubuntu 并使用 gcc 编译。首先我编写代码并说我将其命名为 testing.c。然后我将它保存在一个文件夹中,比如 c。然后我去命令行,如果目前我不在文件夹 c 中,我通过写入将其更改为文件夹 c

cd /c

然后我使用 gcc 编译它

gcc testing.c -o testing

然后接下来我通过键入来敲响它

./testing

注意:-这是我在使用 gcc 编译时在 ubuntu 上所做的。

于 2013-03-01T17:01:07.027 回答
1

我不使用 minux,所以用一粒盐,但似乎你应该使用mcc编译*:

mcc filename.c -o myprogram
chmod +x myprogram
./myprogram

-o选项允许您选择可执行文件名称,因此它不默认为a.out,这chmod +x是为了确保您有一个有效的可执行文件(可能不需要它,但它不会受到伤害)

*参考

于 2013-03-01T16:52:21.937 回答
0

-> 在命令提示符下保存并退出程序(ESC :wq)后编译,命令为 CC(您的文件名需要有扩展名 .C)

-> 要在命令提示符下运行程序,您需要输入 ./a.out。

->要在不关闭程序的情况下编译和运行,它是 (ESC) :!CC % 和 (ESC) :!./a.out

你可以看看 这里

于 2013-03-01T16:31:47.687 回答
0

Unix 的习惯是,如果您调用编译器来生成可执行文件,并且没有明确给出可执行文件的名称,则会调用可执行文件a.out(可能是为了汇编程序输出)。所以:

  • cc -c program.c:只需编译,给出program.o
  • cc program.c: 编译和链接,没有给出可执行文件名,可执行文件是a.out
  • cc -o name program.c:编译和链接,明确要求提供可执行文件name

编译器通常足够聪明,可以从扩展中判断内容(以及如何处理文件)。

于 2013-03-01T17:04:03.520 回答