linuxc编程第二讲

linuxc编程第二讲

ID:34509527

大小:492.47 KB

页数:61页

时间:2019-03-07

linuxc编程第二讲_第1页
linuxc编程第二讲_第2页
linuxc编程第二讲_第3页
linuxc编程第二讲_第4页
linuxc编程第二讲_第5页
资源描述:

《linuxc编程第二讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、LINUX系统编程LINUXLINUX系统编程系统编程信息科学与工程学院付冲LINUX系统编程第二讲LinuxC程序设计基础2.1一个最简单的C程序的编译//example.c#include“stdio.h”intmain(intargc,char*argv[]){printf(“Thisisasimpleexample!”);exit(0);}LINUX系统编程(1)cc与gcc分别是Unix与Linux平台下的c(c++)编译器;(2)gcc——g的含义?g——GNU;(3)Linux为保

2、证遵循POSIX标准,即与Unix指令相兼容,同时支持cc,其本质为:cc是gcc的符号链接,即cc完全等同于gcc,但请注意:在Unix下只有cc,不能使用gcc;LINUX系统编程(4)头文件(.h)和系统库文件(.so)的位置?头文件:/usr/include系统库文件:/usr/lib(5)cc(gcc)在执行编译工作的时候,总共需要4步:(a)预处理,生成.i的文件;(b)将预处理后的文件转换成汇编语言,生成.s的文件;(c)由汇编变为目标代码,生成.o的文件;(d)连接目标代码,生成可执

3、行程序.LINUX系统编程最简单的编译方法:执行gccexample.c系统将example.c编译为可执行文件a.out在终端提示符下执行./a.out即可得到执行结果注意两点:(a)为什么需要./呢,直接执行a.out为什么不可以呢?注意,产生该问题主要是由于我们平时使用Windows与Dos为主的缘故,Unix/Linux规定在搜索一个文件时,只在环境变量PATH设定的路径中搜LINUX系统编程索,即如果当前路径不在PATH中,那么执行当前路径下文件时会报错。提示:查看一个环境变量echo$P

4、ATH;永久增加/设定一个环境变量可操作/etc/profile文件.(b)系统将example.c直接编译为可执行文件,.i,.s,.o中间过程文件不会出现在系统中。若要自己为可执行文件起名呢?gcc-oexampleexample.cLINUX系统编程即可将可执行文件命名为example,而不是系统默认制定的a.out了。LINUX系统编程2.2一个由多个源程序文件组成的C程序的编译在实际项目中,系统往往由多人共同完成,其功能一般也由多个文件以模块化方式实现的,这时就需要用gcc将多个独立文件分

5、别编译,然后链接为可执行文件。LINUX系统编程设一个C程序由4个源程序文件组成//example.c#include“myprj.h”intmain(intargc,char*argv[]){addRecord();modifyRecord();deleteRecord();exit(0);}LINUX系统编程“myprj.h”内容如下:externvoidaddRecord();externvoidmodifyRecord();externvoiddeleteRecord();//addReco

6、rd.c#includevoidaddRecord(){printf(“recordaddedsuccessfully!!”);}LINUX系统编程//modifyRecord.c#includevoidmodifyRecord(){printf(“recordmodifiedsuccessfully!!”);}//deleteRecord.c#includevoiddeleteRecord(){printf(“recorddeletedsucc

7、essfully!!”);}LINUX系统编程编译方法如下:(1)生成目标文件example.o,addRecord.o,modifyRecord.o和deleteRecord.ogcc-cexample.cgcc-caddRecord.cgcc-cmodifyRecord.cgcc-cdeleteRecord.c(2)链接4个目标文件,生成可执行文件examplegccexample.oaddRecord.omodifyRecord.odeleteRecord.o-oexampleLINUX系统编

8、程2.3gcc常见参数(1)-c只激活预处理,编译和汇编,即只生成目标(obj)文件例子用法:gcc-cexample.c将生成example.o的obj文件LINUX系统编程(2)-S只激活预处理和编译,即把文件编译成为汇编代码例子用法:gcc-Sexample.c将生成名为example.s的汇编代码,可以用more,cat等命令查看。LINUX系统编程(3)-E只激活预处理,即将预处理全部展开。该参数编译源程序后不生成文件,需要把它重定向到一个输出文件里查看结果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。