• Linux ./configure sudo make && make install


    make && make install 的意思就是
    先执行 make
    如果成功,就接着执行 make install




    双与号 &&

    双与号 && 在Linux Shell(bash) 中的作用是: 命令的短路与
    命令1 && 命令2 : 命令1执行成功才执行命令2
    也可以多个: 命令1 && 命令2 && 命令3 …

    双或号 ||

    双或号 || 在Linux Shell(bash) 中的作用是: 命令的短路或
    命令1 II 命令2 : 命令1执行失败才执行命令2
    也可以多个: 命令1 || 命令2 || 命令3 …

    ./configure 是编译和安装配置,建立Makefile文件

    “configure”会在系统上测试特性(或者bug!)然后在当前目录建立Makefile文件来完成make!
    ./configure是执行当前文件夹的configure脚本 , 用于配置安装过程, 比如安装路径
    例如 git 2.37.2 安装包中 configure 文件的开头示例

    #! /bin/sh
    # Guess values for system-dependent variables and create Makefiles.
    # Generated by GNU Autoconf 2.71 for git 2.37.2.
    #
    # Report bugs to .
    #
    #
    # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
    # Inc.
    #
    #
    # This configure script is free software; the Free Software Foundation
    # gives unlimited permission to copy, distribute and modify it.
    ## -------------------- ##
    ## M4sh Initialization. ##
    ## -------------------- ##
    
    # Be more Bourne compatible
    DUALCASE=1; export DUALCASE # for MKS sh
    as_nop=:
    if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
    then :
    ......
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    “configure”脚本有大量的命令行选项,对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的。而我们用的最多的也就是下面这条命令:
    ./configure --prefix=/软件要安装的路径
    如果直接./configure而不指定路径,通常通过从源码包编译安装的默认路径都是/usr/local/

    make 是编译

    在编译的时候,gcc个版本之间存在着差异,所以有时候用不同版本的gcc去编译,有的版本能编译成功,有的就编译失败,这样的错误只是版本问题。
    另外在make的时候会出现的另一个错就是比较难办的,遇到这样的问题就只能凭经验查找原因,比如说某个头文件没有找到,这个时候就要顺着出错的位置一行一行的往上找,比如显示xxxx.h………no such file or directory,说明缺少头文件,或者找到你觉得有价值的错误信息去搜索引擎里搜索,从这里可能会找到对你有用的信息,最重要的就是在安装之前仔细的去看README、INSTALL文件,这两个文件里会告诉你程序应该怎样去安装,需要什么依赖文件等等。
    有的时候在编译时不知道是否编译成功,而在没有编译成功就去make install肯定会出错,这样就增加了问题的复杂性,俗话说的好“道高一尺魔高一丈”,这样我们可以在make结束的时候通过一条命令来检查是否成功编译:echo $? (查看上一次执行的返回值)
    输入这条命令回车后,输出的结果是0,那么就说明成功编译,否则就是出错了,echo $?表示检查上一条命令的退出状态,程序正常退出返回0!
    更自动的方法就是用上 命令短路与 make && make install

    make install 是安装

    从Makefile中读取指令,然后安装到指定的位置

  • 相关阅读:
    自定义进制规则的转换思路
    滑动窗口和螺旋矩阵
    java计算机毕业设计再生产公益管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
    Linux下SpringBoot项目部署(centos系统)
    【Swift 60秒】31 - Repeat loops
    Ps:简单快速的主背分离方法
    热敏电阻温度计算 公式 程序
    SpringBoot 集成 elasticsearch
    java中的clone方法
    阿里云Windows服务器(ECS)下tomcat安装SSL证书及配置HTTPS
  • 原文地址:https://blog.csdn.net/kfepiza/article/details/126589777