Linux环境C语言编译与头文件等知识点小结
一、C语言的有关文件类型: 虽然,在Linux下“一切皆文件”,并且文件类型这个概念不是那么重要,一个“.c”文件可以用gcc编译,一个“.abcdef”文件照样可以用gcc编译。但是有类型的文件毕竟比无类型的文件更加具有直观性,所以我们还是得说说这个文件类型。 C语言的有关文件类型如下所示: .c /*源代码文件*/ .h /*C语言头文件*/ .i /*经过预处理之后的源代码文件*/ .s /*汇编代码文件*/ .o /*目标代码文件(二进制机器指令文件)*/ .a /*静态对象库文件*/ .so /*共享(动态)对象库文件*/ 一个程序的编译到运行gcc file.c执行了什么?其文件类型有何变化?如下图所示,最终我们只能看到a.out这个可执行文件: 二、gcc的有关选项参数与生成文件: 如果直接gcc file.c,就只会生成a.out执行文件,如果我们想看一下一个C语言文件从预处理到连接过程中各个文件的内容该怎么办?我们可以给gcc加上指定选项,进行指定操作,而不是由编译器直接生成a.out。首先说说这里会用到的重要的选项,如下所示: -o /*指定目标文件名*/ -E /*只进行预处理,不编译*/ -c /*只编译,不链接*/ -S /*汇编生成.s文件*/ -Wall /*显示所有警告,代码较长时最好加上*/ 我们来测试一下: (1)最初,我们只有一个main