程序编译与Tarball(一)

来源:互联网 发布:维生素vb的作用及功能 编辑:程序博客网 时间:2024/05/17 02:51
开放源码:就是程序代码,写给人类看的程序语言,但机器并不认识,所以无法执行
编译器:将程序大妈转译成为机器看的懂的语言,就类似翻译者的角色
可执行文件:经过编译程序变成二进制程序后,机器看的懂,所以是可以执行的文件

函数库:类似子程序的角色,可以被呼叫来执行一段功能的函数。



什么是make与configure
使用类似gcc的编译器来进行编译的过程并不简单,应为一套软件不会仅有一直程序,而是有一堆程序代码的文件爱你,所以除了每个主程序与子程序均需要写上一个编译过程的指令外,还需要写上最终的链接程序。当程序代码少的时候还好,如果程序代码巨量,那么写编译指令就会是巨量的工作,这时我们可以使用make这个命令来进行相关功能的编译过程指令的简单化。

当执行make时:
    make会在当时的目录下搜寻makefile这个文件,而makefile里面记录了源代码的详细信息。make会自动判断源代码是否变动,而自行更新执行文件。
那么makefile怎么写:
    通常软件的开发商都会写一支侦测程序来侦测用户的作业环境,以及该作业环境是否有软件开发商所需的其他功能,该侦测程序侦测完毕,就会主建立makefile的规则文件。
    通常这支侦测程序叫做configure或者config.
为什么要侦测作业环境呢?
    不同的发行版本会使用不同的内核,不同版本的内核使用的系统呼叫可能不同,而且每一个软件所需要的函数库不同,同时软件开发商不仅针对linux开发软件,而是针对整个Unixx-like做开发的,所以他也必须要侦测该操作系统平台有木有提供合适的编译程序才行。
侦测的数据内容:
    .是否有适合的编译程序可以编译本软件的程序代码
    .是否已经存在本软件所需要的函数库,或其他依赖性软件
    .操作系统平台是否适合本软件,包括Linux内核
    .内核的表头定义文档(header include)是否存在(驱动程序必须要侦测)


什么是Tarball软件

源代码其实就是写满程序代码的纯文本文件,纯文本文件比较大,单用资源,所以通过打包压缩减少文件的数量与大小。所谓的Tarball文件,其实就是将软件的所有源代码文件以tar打包,然后在以压缩技术来压缩,最常见的gzip,因为利用了tar与gzip的功能,所以Tarball文件一般的扩展名就会写成*.tar.gz或者简写为*.tgz,由于bzip2压缩了叫佳,所以Tarball渐渐以bzip2的压缩技术来取代gzip,因此文件会变成*.tar.bz2.Tarb是一个软件包里面包含的文件有:
    .源代码;
    .侦测程序文件(configure)
    .本软件的简易说明(readme 或 install)
软件安装流程:
        1.将Tarball下载下来;
        2.将Tarball解压开,产生许多的原始文件
        3.开始以gcc进行源代码的编译(产生目标文件 object files);
        4.然后以gcc进行函数库、主、子程序的链接,形成binary files);
        5.将上述binary file 已经相关的配置文件安装到自己的主机上。
软件更新:
        .直接以源代码透过编译器来安装与升级
        .直接以编译好的binary programe来安装与升级。


第一支程序:hello world
默认的状态下,如果我们直接以gcc编译原始码,并且没有加上任何参数的时候,那么执行文件会被设定为a.out这个文件名。

 

上面的步骤很简单,hello.c是源代码,而gcc就是编译器,a.out就是编译成功的可执行文件binary program.如果相应产生目标文件object file来进行其他动作,而且可执行文件名不适用默认的a.out。如下:




0 0
原创粉丝点击