ubuntu下编译c程序的详解
来源:互联网 发布:comtrade数据库怎么用 编辑:程序博客网 时间:2024/05/01 05:22
1、c语言中的各种后缀名代表的意思:
.a文件代表的是静态库
.c代表c源代码
.h代表c源代码头文件
.i代表的是c源代码(这是被预处理过后的结果)
.o对象文件
.s汇编语言的代码
.so动态库
2、c语言程序从源代码到生成可执行文件的过程:c程序源代码(.c文件)-----(1)-----不用预处理的c程序源代码(.i文件)----(2)---汇编语言文件(.s文件)------(3)-----机器语言文件(.o文件)-----(4)------可执行文件
其中的每个过程的意义如下:过程(1)是预处理阶段,这个阶段主要是根据#开头的命令修改c源文件,主要的工作是,比如#include<stdio.h>命令告诉预处理器读取系统文件stdio.h的内容并且把相应的内容插入到源代码中去,就形成了.i文件。
过程(2):这个过程是编译阶段,编译器将文本文件.i文件翻译成文本文件.s文件。这个文件是与源文件等效的汇编语言程序。
过程(3):这个过程主要是汇编阶段,在这个阶段中汇编器将.s文件编译成机器语言指令就是这里的.o文件。
过程(4):这个过程是链接阶段,这个阶段主要就是将程序中的一些库函数用链接器给进行链接(链接过程包括静态链接和动态链接,在这里就不细说了)。
3、讲一下ubuntu下面c源程序的各种文件的获得:(比如有一个源程序为hello.c文件)
(1)、为了获得可执行文件可以使用命令:gcc hello.c -o a其中-o是用来指定所生成的可执行程序的文件名,比如这里生成的文件名是a。
(2)、如果程序中用到了不是gcc默认的库函数的时候,比如程序中用到了math.h这个头文件。这个头文件不是gcc默认的头文件,所以在编译的时候要加入-l库的首字母来进行编译。比如这里是:gcc hello.c -lm -o a.
(3)、为了将源程序编译成.o文件的命令是指定参数-c来进行编译。例如这里要生成hello.o文件的编译为:gcc -c hello.c -o hello.o。
(4)如果要执行预处理的话,使用的编译代码就是加上参数-E来进行编译,比如我们这里要生成hello.i文件,则我们编译代码是:gcc -E hello.c -o hello.i。
(5)、如果要生成汇编代码,使用的编译代码就是加上参数-S进行编译,比如我们要生成hello.s文件,则我们使用的编译代码是:gcc -S hello.c -o hello.s。
- ubuntu下编译c程序的详解
- Ubuntu下编译C程序的详解
- Ubuntu下编译C程序
- Ubuntu下编译C程序
- ubuntu下编译c程序
- Ubuntu下编译C程序
- 在ubuntu下编译Objective-C程序
- Ubuntu下开发编译运行C程序
- ubuntu下编译c程序之多个 .c文件关联
- 《C编译原理》ubuntu下helloworld程序加载运行分析
- ubuntu下使用make快速编译C语言程序
- ubuntu下用gcc编译c程序文件
- ubuntu下利用gcc编译C语言程序
- linux菜鸟在ubuntu下编译了arm的c程序
- Linux下c程序的编译方法:
- linux下c程序的编译过程
- linux下C程序的编译链接
- Ubuntu下Linux C程序的创建
- QT中使用phonon播放语音文件
- 厌倦这个世界,我要学会为自己而活:伤感空间日志
- QT中实现当前时间实时更新
- jQuery EasyUI 1.3 新特性
- VC/MFC 键盘消息的截取与响应
- ubuntu下编译c程序的详解
- QT中使用mplayer播放语音文件
- 交通灯系统中学到的技术
- 如何判断有符号数的溢出
- Tab控件的使用
- Input子系统分析
- php.ini配置文件中文详解
- qsort用法
- sqlite3中的数据类型