分享

C /C 入门之编译连接

 走出尘埃 2016-06-15

对于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++/C 入门之编译连接其中-c选项告诉编译器只编译和汇编,但不连接。-s选项告诉编译器生成汇编代码。-x选项可指定源文件类型,c,c++或者其他。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多