zoukankan      html  css  js  c++  java
  • linux自由软件安装 ./config, make的理解

    在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install。或许有人留意到没有,这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件.

    configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文件,Makefile 规定了用什么编译器、编译参数等信息。从而可以使你的源代码能在不同的操作系统平台上被编译出来。比如它会检测你是不是有CC或GCC。

    可以通过在 configure 后加上参数来对安装进行控制,比如代码:

    ./configure --prefix=/usr
    上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share.

    如果你安装时候指定的路径为:
    --prefix=/usr/local/XXX,那么卸载的时候只需要把XXX这个文件夹删除即可!!!!!,因为该软件安装的所有文件都是放置在XXX这个文件夹。但如果你进行源码包安装的时候没有指定位置(默认值一般为/usr/local/),或指定的位置为--prefix=/usr/local,则这时候你安装软件生成的文件将分别存储在/usr/local/里面的bin、lib或ect等目录中,这时候卸载起来就相对麻烦一点了。

    可以通过 ./configure --help 察看详细的各个参数的说明。

    make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件),以通常得用 sudo make install。.

    当我们在使用make命令时,常常会在make后面加上其他单词,比如check,install,installcheck…这些单词都是make的参数,我们称之为“目标(targets)”。

    最常见的几个目标:
    make all:编译程序、库、文档等(等同于make)
    make install:安装已经编译好的程序。复制文件树中到文件到指定的位置
    make unistall:卸载已经安装的程序。
    make clean:删除由make命令产生的文件
    make distclean:同时删除./configure和make产生的临时文件
    make check:测试刚刚编译的软件(某些程序可能不支持)
    make installcheck:检查安装的库和程序(某些程序可能不支持)

    make dist:重新打包成packname-version.tar.gz

    上面这些很多人都知道,但是configure这个脚本是从哪来的呢

    它其实是由autoconf和automake两个工具来生成的。和cmake一样用类似的方式最后生成makefile,不过cmake却简约很多

    automake的写法就不写了,了解下就可以了

  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/wangshaowei/p/11503876.html
Copyright © 2011-2022 走看看