gcc 运行的输出文件的扩展名是什么?

gcc 运行的输出文件的扩展名是什么?

如果我这样做gcc filename.c,我就会得到a.out

执行后gcc -o output_name filename.c我们得到可执行文件output_name

这个文件的扩展名是什么?

答案1

与 Windows 不同,Linux 并不根据文件的扩展名来确定文件类型。相反,它会检查文件的前几个字节来确定文件类型。

gcc因此,需要给出输出文件无延期。您可以添加任何您想要的扩展名(通过更改-o output_name-o output_name.abcd),但这不会产生任何差异。

您可以查看命令的输出

file ./filename

例如

:~$ file output_file 
output_file: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9bc9fabf05a3d2e58c7780c48cd873cb2955b2ec, not stripped
:~$ 

答案2

它没有。您可以执行gcc -o myprog.exe filename.c,它将被调用myprog.exe。与 Windows 不同,Linux 上没有可执行文件的默认扩展名。如果您想将文件标记为可执行文件,请执行chmod +x file

ls -l显示x你的文件是否设置了(可执行)标志:

user@host# ls -l filename
-rwxr-x--x 1 ubu users 42 Mai 10 08:16 filename

- means its a file (d would be directory,see below)
r means readable
w means writeable
x means executable

第一个三元组用于所有者(ubu在本例中),第二个三元组用于拥有组(用户),最后一个三元组用于其他所有人。

对于目录来说,x意思是“可以进入目录”,所以如果x没有设置,你就无法执行cd directory

在 Linux 上,文件扩展名并不特殊,它们只是文件名的一部分。

相关内容