学习日志 姓名:周甜 日期:0925
|
|
今日学习任务
|
学习gcc编译器、gdb调试器、make工程管理器 |
今日任务完成情况
|
对make工程管理器的使用不是很了解 |
今日开发中出现的问题汇总
|
无 |
今日未解决问题
|
无 |
今日开发收获 |
Gcc是Linux系统下最流行的编译系统全称GNU Compile Collection。GCC 也是 GNU 发布的最著名的软件之一。GCC 的功能非常强大,主要体现在两方面。 1) GCC 可以为 x86、ARM、MIPS 等不同体系结构的硬件平台编译程序。 2) GCC 可以编译 C、C++、Pascal、Java 等数十种高级语言。 gcc 命令的使用格式为: gcc [选项] [文件名] [选项] [文件名] gcc 命令拥有数量庞大的编译选项,按类型可以把选项分为以下几大类。 1.“gcc -v” 可以查看 GCC 中 C 编 译器 gcc 的详细信息。
-c:对源文件进行编译或汇编。 -E:对源文件进行预处理。 -S:对源文件进行编译。 -o file:输出目标文件 file。 -v:显示编译阶段的命令。
-ansi:支持符合 ANSI 标准的 C 程序。
-W:屏蔽所有的警告信息。 -Wall:显示所有类型的警告信息。 -Werror:出现任何警告信息就停止编译。
-g:产生调试信息。
-O2:在-O1 的基础上进一步优化,提高目标文件的运行性能。 -O3:在-O2 的基础上进一步优化,支持函数集成优化。 -O0:不进行优化。
-static:使用静态链接。 -llibrary:链接 library 函数库文件。 -L dir:指定连接器的搜索目录 dir。 -shared:生成共享文件。
-Idir:指定头文件的搜索目录 dir。 -Ldir:指定搜索目录 dir。 最后来介绍一下gcc的工作流程,在 C 程序的编译过程中,依次要进行预处理、编译、汇编、链接四个阶段。 在预处理阶段主要是头文件的展开、宏替换、条件编译; 在编译阶段是语法检查、词法分析; 在汇编阶段是将汇编程序翻译成 CPU 可以识别的二进制文件; 在链接阶段是符号表的建立。 GDB 调试器(GNU Debugger)功能强大,调试速度比gcc快很多。 在使用gdb调试器前,要通过运行命令“gcc –g test.c -o test”对 test.c 进行编译,其中参数 g 的作用是把调试信息加入生成的 test 可执行文 件中,否则 GDB 就无法对 test 进行调试; 一些常见的命令:
Make工程管理器 为了提高编译程序的效率,很多基于 Windows 平台上的开发工具都提供了工程管理器。 用户只需要点击一个“make”按钮就可以启动工程管理器对整个程序进行自动编译。在整个 编译的过程中是不需要人工干预的。这种工程管理器形象的称为全自动工程管理器。 GCC 提供了半自动化的工程管理器 Make。所谓半自动化是指在使用工程管理器前需要 人工编写程序的编译规则。所有的编译规则都保存在 Makefile 文件中。全自动化的工程管 理器在编译程序前会自动生成 Makefile 文件。 Make工程管理器优越之处在于使用方便、调试效率高。 Makefile 文 件由以下三项基本内容组成。 1)需要生成的目标文件(target file)。 2)生成目标文件所需要的依赖文件(dependency file)。 3)生成目标文件的编译规则命令行(command)。 其中,Makefile 规定在书写 command 命令行前必须加一个键。 Make 工程管理器在编译程序时会检查每个依赖文件的时间戳,一旦发现某个依赖文件 的时间戳比目标文件要新,就会执行目标文件的规则命令来重新生成目标文件。这个过程称 为目标文件的依赖规则检查。依赖规则检查是 Make 工程管理器的最核心的工作任务之一。 一些常用的命令:
|
自我评价
|
今天通读了这三大工具是说明书,我对它们的使用有了更加深入地了解。 |
其他
|
无 |