有人能给我解释一下什么是a.out
以及它是如何工作的吗?这是我第一次使用Unix (minix)。我有一个文件夹,其中有两个文件filename.c
和test.sh
(包含以。/a开头的三行)。Out和一些f=值)。我只是想编译和执行filename.c
,如果它不是?
我不使用minux,所以要有所保留,但似乎您应该使用mcc
进行编译*:
mcc filename.c -o myprogram
chmod +x myprogram
./myprogram
-o
选项允许您选择可执行文件名称,因此它不是默认为a.out
, chmod +x
是为了确保您有一个有效的可执行文件(它可能不需要,但它不会伤害)
我用ubuntu,用gcc编译。首先,我将代码命名为testing.c,然后将其保存在一个名为c的文件夹中。然后我进入命令行,如果我目前不在文件夹c中,我通过写入
将其更改为文件夹ccd /c
然后使用gcc
编译它gcc testing.c -o testing
然后输入
./testing
注意:-这是我在ubuntu上使用gcc编译时所做的。
->保存退出程序后进行编译(ESC:wq)在命令提示符下,命令是CC(你的文件名需要有一个扩展名。c)
->要在命令提示符下运行程序,您需要键入./a.o ut。
->编译并运行而不关闭程序是(ESC):!CC % and (ESC):!./a.out
你可以看看这里
Unix自定义是,如果您调用编译器来生成可执行文件,并且没有显式地给出可执行文件的名称,则该可执行文件称为a.out
(可能用于汇编程序输出)。所以:
-
cc -c program.c
:编译得到program.o
-
cc program.c
:编译并链接,没有给出可执行文件名,可执行文件为a.out
-
cc -o name program.c
:编译和链接,明确要求给出可执行name
编译器通常足够聪明,可以从扩展名中判断出内容(以及如何处理文件)。