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的写法就不写了,了解下就可以了

  • 相关阅读:
    HDU 1301 Jungle Roads
    HDU 1671 Phone List
    HDU 1992 Tiling a Grid With Dominoes
    HDU 1251 统计难题
    总结自己的近期表现
    Windows API 函数: SetClassLong
    ModifyStyle
    assert,assert_valid,verify,trace用法
    用VC++绘制位图按钮
    Codeforces 144D. Missile Silos 最短路
  • 原文地址:https://www.cnblogs.com/wangshaowei/p/11503876.html
Copyright © 2011-2022 走看看