首页 > 系统相关 >linux源码包编译安装

linux源码包编译安装

时间:2023-05-08 14:23:41浏览次数:43  
标签:文件 configure 配置文件 makefile 生成 编译 源码 linux

用rpmbuild命令制作成二进制格式的rpm  包,而后再安装;
    源代码组织格式:
        多文件:文件中的代码段之间,很有可能存在跨文件依赖关系;
    各个语言的项目管理器:
        C,C++:make;
        Java:maven;
    make执行过程:
        make针对每一个源代码都有一个专用的配置文件,它会根据配置文件作出决定,比如在预处理阶段,决定调用那个预处理器如何预处理;在编译阶段决定调用哪个编译器如何执行编译,先编译哪个文件,后编译哪个文件;最后编译生成的文件要放到那些目录等;
            这个配置文件就是makefile,因为不同用户的需求不同,所以决定了makefile不可能是事先存在的,需要根据需求而临时生成的,那么它是怎么生成的那:由Makefile.in生成;makefile.in就类似一个模板,用户选择好不同的参数之后根据模板而生成makefile,比如事先设置各种配置文件的安装路径等;那么问题来了:Makefile.in这个模板是怎么生成的那,它是由configure这个脚本生成的;configure脚本允许用户传递给它一些选项用来指明程序包的编译参数、启用特性、安装路径等;
                大体过程:configure通过用户指定的选项然后结合Makefile.in模板来生成makefile文件;
    编译安装三步骤:
        ./configure
            通过选项传递参数,指定启用特性,安装路径;执行时会参考用户指定的参数以及Makefile.in模板生成makefile文件;
            检各个启用的功能所依赖的外部环境;
        make
            根据makefile文件,构建应用程序;
        make install:其实这一步就是把编译(构建)好的程序的文件放到相对应的目录下,使用cp命令也可以完成;
    开发工具:
        一般情况下源码包都会自带configure,但是也有的源码包不带,所以就需要我们自己生成它,如果手动的一步一步的编写这个就脚本无疑是很费时间的,所以就有了可以自动生成它的开发工具;
        autoconf:生成configure脚本;
        automake:生成Makefile.in文件;
            因不同的需求而启动的功能有所不同,所以导致configure也是不同的,所以autoconf也是需要根据配置文件来生成configure脚本的;

标签:文件,configure,配置文件,makefile,生成,编译,源码,linux
From: https://www.cnblogs.com/lishuang1002/p/17381607.html

相关文章

  • How to use Linux command or Python code get Raspberry PI's Temperature All In On
    HowtouseLinuxcommandorPythoncodegetRaspberryPI'sTemperatureAllInOne如何使用Linux命令或Python代码获取RaspberryPI的温度raspberrypicheckthetemperatureimportgpiozeroasgz#readthetemperatureintoavariable:cpu_temp=gz.CPUTe......
  • Go源码阅读——github.com/medcl/esm —— buffer.go
    esm(AnElasticsearchMigrationTool)—— buffer.gohttps://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*CopyrightMedcl(mATmedcl.net)Licensedun......
  • Linux下面误删除文件使用extundelete工具恢复介绍
    操作系统版本:CentOSrelease6.4(Final)   软件版本:extundelete-0.2.4.tar.bz2PS:该软件恢复文件系统仅支持ext2/ext3/ext41.创建文件系统[root@zw_test_26_74/]# mkfs-text4/dev/sdb32.查看文件系统类型[root@zw_test_26_74/]#blkid/dev/sdb3 --查看文件系......
  • Linux下面误删除文件使用extundelete工具恢复介绍
    1.使用rz命令上传extundelete-0.2.4.tar.bz2到/tmp文件夹下并解压软件。1[root@localhosttmp]#tar-jxvfextundelete-0.2.4.tar.bz22.进入到extundelete解压的目录下面,执行编译安装。1234567891011[root@localhost test]#cd/tmp[r......
  • linux环境部署--MySQL5.7二进制源码文件安装
    linux环境部署--MySQL5.7二进制源码文件安装mysql-5.7.11-Linux-glibc2.5-x86_64.tar提取码:1999MySQL5.7卸载1、将安装包解压到/usr/local/sudotarzxvfmysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz-C/usr/local/2、解压后为了方便后面操作可把解压后文件名修改为mysql......
  • Shortcut of Chrome on Windows & Linux
    ShortcutofChromeonWindows&LinuxTab&windowshortcutsActionShortcutOpenanewwindowCtrl+nOpenanewwindowinIncognitomodeCtrl+Shift+nOpenanewtab,andjumptoitCtrl+tReopenpreviouslyclosedtabsinthe......
  • linux系统根目录下常见目录作用
    在Linux下一切皆文件,所有的文件都挂载在一个根文件上。一般有bin、boot、dev等目录。1.根文件内核启动后挂载的第一个文件系统2.bin存放系统的二进制命令(cd、ls、rm、mv)3.bootLinux内核和引导程序所需的目录4.lib/lib32/ilb64程序运行必要的链接库5.ect系统管理和维护方面的......
  • Go源码阅读——github.com/medcl/esm —— domain.go
    esm(AnElasticsearchMigrationTool)—— domain.gohttps://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*Copyright2016Medcl(mATmedcl.net)Licens......
  • Linux - IO多路复用之select
    1.IO多路转接(复用) IO多路转接也称为IO多路复用,它是一种网络通信的手段(机制),通过这种方式可以同时监测多个文件描述符并且这个过程是阻塞的,一旦检测到有文件描述符就绪(可以读数据或者可以写数据)程序的阻塞就会被解除,之后就可以基于这些(一个或多个)就绪的文件描述符进行......
  • RocketMQ源码(一):源码环境搭建
    一、源码地址下载RocketMQ官网下载地址:https://github.com/apache/rocketmq/tags。 当前搭建的是4.8.0版本的rocketmq,下载zip压缩包至本地,并解压。当解压后的RocketMQ源码导入IDEA。   二、源码环境搭建1、启动NameServer1、NameServer启动源码入口......