- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05 Linux应用编程基础-1
Linux编程基础
应用编程基础
应用程序编译
文件操作
进程操作
进程间通信
2016/3/16 北京交通大学电子信息工程学院 2
应用程序的编译
GNU工具链
GNU是“GNUs Not Unix” 的递归缩写
Richard Stallman创立自由软件基金会(Free Software
Foundation )支持GNU计划
GNU软件遵守协议:
GPL :GNU通用公共许可证(GNU General Public License )
LGPL :GNU较宽松公共许可证(GNU Lesser General Public License )
GFDL :GNU 自由文档许可证(GNU Free Documentation License )
GCC (GNU Compiler Collection,GNU编译器集合)
GNU工具与Linux 的结合: GNU/Linux
/
2016/3/16 北京交通大学电子信息工程学院 3
应用程序的编译
GNU工具链组成
Binutils:
一组用于编译、链接、汇编和其他调试目的的程序,包
括ar, as, ld, nm, objcopy, objdump, ranlib, readelf, size,
strings, strip等。
gcc :
gnu 的编译器集合,Linux环境使用的C语言编译器
glibc :
gnu 的C语言标准函数库。该库实现Linux系统函数,例如
open、read等,也实现标准C语言库,如printf等。几乎所
有应用程序都需要与glibc链接。
2016/3/16 北京交通大学电子信息工程学院 4
应用程序的编译
GCC
集成了多种编译器的编译程序
支持C, C++, Fortran, Java等语言
可执行文件名字gcc,也可以使用单一语言的编
译器
命令行启动
gcc hello.c
完成编译和连接生成a.out可执行程序,执行此程序
./a.out
2016/3/16 北京交通大学电子信息工程学院 5
应用程序的编译
GCC编译选项
从C语言源程序生成可执行代码文件的过程
预处理
编译(生成汇编代码)
汇编
连接
GCC用文件名后缀判断编译类型,也可用‐x选项强迫GCC从哪个阶段
开始
用‐c, ‐S, ‐E选项让编译到某一步结束
‐c:编译或汇编源文件,不连接,输出.o文件
‐S:编译后停止,不进行汇编,生成汇编代码.s文件
‐E:预处理后停止,不编译,预处理后送到stdout
用‐o file指定输出文件名,哪一个阶段都有效。
例如:gcc hello.c –o hello
2016/3/16 北京交通大学电子信息工程学院 6
应用程序的编译
GC
文档评论(0)