• 编译安装程序包


    C语言的原代码

    源代码 --> 预处理(需要预处理器) --> 编译(对于linux平台而言,C、C++的编译器为gcc) --> 汇编(需要汇编器) --> 链接(需要链接器) --> 执行

    如果真的按照上面的过程一步一步编译的话需要很多工具,而且难度是相当大的。有了项目管理工具之后,只需要简单使用几步,就可以完成上面这些功能。它会自动调用预处理器做预处理,自动调用编译器进行编译,自动调用汇编器进行汇编,自动调用链接器进行链接。

    编译:编译之后生成的是目标代码

    汇编:将目标代码转换成二进制指令的过程;因为每个平台支持的二进制指令不一样,汇编就是将代码转换成CPU可运行二进制指令的过程。

    源代码组织格式:

      源代码可能有多个源文件组成,源文件中的代码之间,或者源文件之间可能存在存在依赖关系;这个时候要是手动编译的话是非常困难的。因此为降低编译或代码管理上的难度,对代码进行增强管理,它们都有一个专门的项目管理器。

      C、C++的项目管理器是:make,make针对每一个源代码都一个专用的配置文件,在make时能够根据配置文件做出决定,比如调用哪个预处理器,如何进行预处理;调用哪个编译器,如果执行编译,先编译哪个文件,后编译哪个文件等等都有说明;这个文件被称为makefile文件。makefile文件不是事先存在的,该文件是由Makefile.in生成而来的,Makefile.in是makefile文件的生成模板。那谁来利用这个模板来生成最终的makefile文件呢? --> configure脚本,它允许用户向它传递一系列的选项,用来指明程序包的编译参数、启用特性、安装路径等,指明完了一回车,它会利用Makefile.in模板生成makefile文件。另外configure还有一个作用就是能够检查功能所依赖的外部环境,如果要启用某个特性,而这个特性依赖于某个程序包,但是这个程序包没有安装,那么configure就会报错。

      因此对于C语言的源代码编译安装通常有三步:

        ./configure  # 生成makefile文件

        make          # 依据makefile配置文件调用其它工具进行预处理、编译、汇编等一系列操作。

        make install  # 将编译后的文件,复制到指定目录下;使用的是install命令;此时复制命令有3个copy、dd、install

      configure和Makefile.in这两个文件通常是程序自带的,但有的程序它不会自带这两个文件,这个时候需要手动去生成这两个文件。项目构建工具能够帮我们自动去生成configure脚本和Makefile.in文件。这依赖于两个开发工具:autoconf(用来生成configure脚本)、automake(用来生成Makefile.in)

      

  • 相关阅读:
    cf C. Vasya and Robot
    zoj 3805 Machine
    cf B. Vasya and Public Transport
    cf D. Queue
    cf C. Find Maximum
    cf B. Two Heaps
    cf C. Jeff and Rounding
    cf B. Jeff and Periods
    cf A. Jeff and Digits
    I Think I Need a Houseboat
  • 原文地址:https://www.cnblogs.com/sq5288/p/11209766.html
Copyright © 2020-2023  润新知