第二章LinuxC编程基础GCC.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章LinuxC编程基础GCC.ppt

第二章 Linux C编程基础--GCC 主要内容 gcc简介 利用gcc编译c程序 利用make工具简化编译过程 调试 开发工具环境 开发工具:编辑工具、编译工具和调试工具,甚至配置工具和项目管理工具。 开发环境: (1)基于文本的:vim+gcc+gdb+make (2)集成开发平台:Eclipse+CDT、 基于文本的开发平台 编辑工具:vim,emacs。 编译工具:gcc,要使用指令完成编译,比如:gcc –o hello hello.c 调试工具:gdb。 项目管理工具:make ,编写makefile文档来完成相关的一系列gcc指令。 gcc简介 名称: GNU project C and C++ Compiler GNU Compiler Collection gcc是一个全功能的?ANSI?C?兼容编译器,它是所有UNIX系统可用的C编译器。 gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 gcc简介 对C/C++编译的控制 预处理:对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。 编译:就是把C/C++代码“翻译”成汇编代码。 汇编:将第二步输出的汇编代码翻译成符合一定格式的机器代码,生成以.s为后缀的目标文件。 链接:将上步生成的目标文件和系统库的目标文件和库文件链接起来,最终生成了可以在特定平台运行的可执行文件。 编译过程的四个阶段: gcc的使用 基本使用格式 $ gcc [ 选项 ] [文件名] 例: 常用选项及含义 gcc的常用选项 gcc的常用选项 gcc的常用选项 gcc文件扩展名规范 gcc可以根据文件扩展名执行操作 使用gcc编译代码 源代码 生成预处理文件 命令:E选项使得gcc生成预处理文件后停止。 $gcc –E hello.c –o hello.i 生成汇编文件 命令 $gcc –S hello.c –o hello.s 生成二进制文件 生成目标文件 命令: $gcc –c hello.c –o hello.o 生成可执行文件 命令: $gcc hello.c –o hello 运行程序 $./hello hello gcc! 利用gcc开发C语言程序 开发C/C++程序的基本步骤是:首先利用文本编辑工具编写源代码,然后将源代码作为输入文件,通过使用不同的控制参数控制gcc实现代码的预处理、编译、汇编、链接等步骤,生成最终的可执行文件。 简单C语言程序—my_app.c #include stdio.h #define N 10 Void greeting(char *name); int main(void) { char name[N]; printf(Your Name,Please:); 使用什么命令生成可执行文件? $gcc my_app.c –o my_app 多个文件的C程序 为了方便代码重用,通常将主函数和其他函数放在不同文件中的方法。 每个函数都有函数声明(函数头)和函数实现(函数体)两部分组成。 函数头一般放在头文件中(*.h)中,而函数的定义文件放在实现文件(*.c、*.cpp)中 编译多个文件 假设3个文件保存在同一个目录下面,如果还使用: 命令: $gcc my_app.c –o my_app 会编译通过吗? 编译多个文件 目录结构(1) 编译命令 $ gcc my_app.c greeting.c –o my_app 目录结构(2) 编译方式(1) $ gcc my_app.c functions/greeting.c –o my_app -I functions 编译多个文件 目录结构(2) 编译方式(2) 分步编译 命令: 1、$gcc -c my_app.c -I functions 2、$gcc -c functions/greeting.c 3、$gcc my_app.o greeting.o –o my_app 思路: 编译每一个.c文件,得到.o的目标文件; 将每一个.o的目标文件链接成一个可执行的文件; GNU C 扩展简介 gcc使用long long数据类型提供64位存储单元。 内联函数:要求内联函数足够短小,使得能够在代码中展开,同时编译器检查函数类型。要使用-O选项。-finline-functions. 使用attribute关键字指明代码相关信息方便优化。 gcc对case做了扩展。case语句可以对应一个范围,在case关键字后列出范围的两个边界值,用“空格省略号空格”分隔。 greeting.h ./ greeting.c my_app.

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档