• 编译安装程序包


    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)

      

  • 相关阅读:
    MySQL Generic Binaries包和RPM包的区别?
    实体零售如何构建数据管理体系及未来方向
    python3 数据分析
    power designer 资料库表查询
    PowerDesigner 连接资料库
    电商数据分析的基本指标体系
    初中数学动点最值问题19大模型+例题详解
    初中数学全年级26个专题知识点精编汇总
    Python数据分析学习路径拆解及资源推荐
    十种常用的数据分析方法
  • 原文地址:https://www.cnblogs.com/sq5288/p/11209766.html
Copyright © 2020-2023  润新知