Linux新手问题:GCC编译器输出

4 c linux gcc compilation

我是Linux的新手.我在笔记本电脑上有Mint,最近一直在玩它.

我写了一个简单的C程序并保存了文件.然后在命令行中输入

gcc -c myfile
Run Code Online (Sandbox Code Playgroud)

并弹出一个名为a.out的文件.天真地(经过多年的Windows使用)预计会出现一个很好的.exe文件.我不知道如何处理这个a.out文件.

Eri*_*rik 8

用它命名-o并跳过-c:

gcc -Wall -o somefile myfile
Run Code Online (Sandbox Code Playgroud)

您应该使用.c扩展名命名源文件.

将两个源文件编译为可执行文件的典型方法:

#Compile (the -c) a file, this produces an object file (file1.o and file2.o)

gcc -Wall -c file1.c
gcc -Wall -c file2.c

#Link the object files, and specify the output name as `myapp` instead of the default `a.out`

gcc -o myapp file1.o file2.o
Run Code Online (Sandbox Code Playgroud)

你可以把它变成一个步骤:

gcc -Wall -o myapp file1.c file2.c
Run Code Online (Sandbox Code Playgroud)

或者,对于具有单个源文件的情况:

gcc -Wall -o myapp file.c
Run Code Online (Sandbox Code Playgroud)

-Wall部分意味着"启用(几乎)所有警告" - 这是一个你应该从一开始就习惯的习惯,它会为你节省很多麻烦,以后再调试奇怪的问题.

a.out名称是旧版unixes的剩余部分,它是一种可执行格式.Linkers仍然a.out默认命名文件,虽然它们现在倾向于生成ELF而不是a.out格式化可执行文件.