正文:
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编程工具介绍