正文:
Linux的发行版包含许多软件开发工具。其中很多都是用于 C 和 C++应用程序的开发。本文介绍了可用于 Linux 下 C 应用程序开发和调试的工具。本文的主要目的是介绍如何在 Linux 下使用C 编译器和其他C 编程工具来代替 C编程课程。
Linux 编程工具 GNU C 编译器
GNU C 编译器(GCC)是一个 Linux 编程工具,是一个全功能的 ANSI C 兼容编译器。如果你熟悉其他操作系统或硬件平台上的 C 编译器,你将能够很快掌握 GCC。本节将介绍如何使用 GCC 以及 GCC 编译器的一些最常用的选项。
Linux 编程工具使用 GCC
通常后跟一些选项和文件名来使用 GCC 编译器。gcc 命令的基本用法如下:
gcc[选项][文件名]
命令行选项指定的操作将在命令行上给出的每个文件上执行。下一节将描述一些您最常用的选项。
Linux 编程工具的 GCC 选项
GCC 有 100 多个编译选项可用。这些选项中有很多可能永远不会用到,但是一些主要的选项会经常用到。许多 GCC 选项包含多个字符。因此,您必须为每个选项指定一个单独的连字符,并且像大多数 Linux 命令一样,您不能在单个连字符后面跟一组选项。例如,以下两个命令是不同的:
gcc -p -g 测试
gcc -pg 测试
第一个命令告诉 GCC 为 prof 命令构建配置文件信息,并在编译 test.c 时将调试信息添加到可执行文件中。第二个命令只告诉 GCC 为 gprof 命令构建配置文件信息。
当您在没有任何选项的情况下编译程序时,GCC 将创建一个名为 a.out 的可执行文件(假设编译成功)
您可以使用-o 编译选项来指定要生成的可执行文件的文件名,而不是. out。例如,要将名为 count.c 的 C 程序编译成名为 count 的可执行文件,您可以输入以下命令:gcc -o count count.c
Linux 编程工具 GCC 也有一个编译选项来指定编译器应该处理多少。c 选项告诉 GCC 只将源代码编译成目标代码,跳过汇编和链接步骤。这个选项使用得非常频繁,因为它使编译多个 C 程序变得更快、更容易管理。默认情况下,GCC 创建的目标代码文件有一个。o 扩展。
S 编译选项告诉 GCC 在为 C 代码生成汇编语言文件后停止编译。GCC 生成的汇编语言文件的默认扩展名是。s. -E 选项指示编译器只预处理输入文件。使用此选项时,预处理器的输出被发送到标准输出,而不是存储在文件中。
优化选项
当你用 Linux 编程工具 GCC 编译 C 代码时,它会尽量在最少的时间内完成编译,并使编译后的代码易于调试。易调试是指编译后的代码与源代码具有相同的执行顺序,编译后的代码没有经过优化。有许多选项可以用来告诉 GCC 以更多的编译时间和简单的调试为代价来产生更小更快的可执行文件。这些选项中最典型的是-O 和-O2 选项。
O 选项告诉 GCC 从根本上优化源代码。这些优化将使程序在大多数情况下执行得更快。O2 选项告诉 GCC 生成尽可能小和尽可能快的代码。-O2 选项会使编译速度比使用-O 时慢,但通常生成的代码会执行得更快。
除了-O 和-O2 优化选项之外,还有一些用于生成更快代码的低级选项。这些选项非常特殊,最好只有在完全理解这些选项会对编译后的代码产生什么影响时才使用它们。有关这些选项的详细描述,请参考 GCC 的指南页并键入 man gcc。命令行上的调试和解析选项。
GCC 支持几个调试和分析选项。在这些选项中,最常用的是-g 和-pg 选项。
g 选项告诉 GCC 生成调试信息,GNU 调试器可以使用这些信息来调试您的程序。GCC 提供了许多其他 C 编译器没有的特性。在 GCC 中,您可以将-g 与-O 结合使用(以生成优化的代码)。这非常有用,因为您可以调试尽可能接近最终产品的代码。当你同时使用这两个选项时,你必须意识到你写的一些代码在优化过程中已经被 GCC 修改了。关于调试 C 程序的更多信息,请参见下一节“用 gdb 调试 C 程序”。
pg 选项告诉 GCC 向您的程序添加额外的代码。当它被执行时,它将为 gprof 生成分析信息,以显示程序的时间消耗。有关 gprof 的更多信息,请参考“gprof”部分。
转载请注明:汇站网 » (linux 教程)Linux 编程工具 C 编译器和 C 编程工具介绍