C++/C 入门之编译连接

C++/C 入门之编译连接

编码文章call10242025-04-08 11:26:3422A+A-

对于C++/C语言的初学者来说,了解它们的编译连接过程以及这个过程常用的工具,是一个很好的开始。

从代码源文件到机器可执行的二进制代码(Windows上为exe文件,Unix系列没有约定的后缀,但可通过shell直接调用),一个C++/C文件经历了编译和连接两个过程。编译过程将源代码转换成汇编语言或者机器语言。由于C++/C使用的是分段编译,即单个文件单独编译成中间代码,编译之后就必须把这些中间代码以及这些代码引用的库文件,连接起来,才能形成可执行文件。

Gnu的gcc全称Gnu Compiler Collection,是当下比较流行的C++/C的编译连接器。gcc原名为Gnu C语言编译器,后来很快扩展成一个编译器套件,包含C,C++,Java等语言的编译器。另外,Gnu组织又为C++语言单独发布了一个编译器,名为g++。通过执行gcc --help和g++ --help,你会发现,两者的命令行参数几乎是一样的。由于gcc支持多语言编译,如果不指名源文件的类型,gcc编译的时候,会试图通过文件名后缀来选择相应的编译器。其中.c默认C编译器,.cpp默认C++编译器。

g++/gcc都支持将编译连接过程合二为一。即通过g++ <源文件1> <源文件2> ... <源文件n> -o 目标文件或者gcc <源文件1> <源文件2> ... <源文件n> -o 目标文件的形式,直接生成可执行的目标文件。如果不通过-o选项指定目标文件的名字,默认目标文件在Windows上为a.exe,在Linux上为a.out。

下图为Linux机器上gcc --help的输出。

其中-c选项告诉编译器只编译和汇编,但不连接。-s选项告诉编译器生成汇编代码。-x选项可指定源文件类型,c,c++或者其他。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4