`

make-makeinstall作用

 
阅读更多

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。

./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。

-----
1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。

2、make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

3、make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

-----
Linux的用户可能知道,在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件。使用上述三个自动工具,就可以生成configure脚本。运行configure脚本,就可以生成Makefile文件,然后就可以运行make、make install和make clean。

configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。

这时,就可运行configure脚本了,运行configure脚本,就可产生出符合GNU规范的Makefile文件了:
$ ./configure

到此时,就可以运行make进行编译,在运行make install进行安装了,最后运行make clean删除临时文件。
$ make
$ make install           (注:运行这个要有足够的权限)
$ make clean

利用configure所产生的Makefile文件有几个预设的目标可供使用,其中几个重要的简述如下:

make all:产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。

make clean:清除编译产生的可执行文件及目标文件(object file,*.o)。

make distclean:除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。

make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。如果用bin_PROGRAMS宏的话,程序会被安装至/usr/local/bin这个目录。

make dist:将程序和相关的档案包装成一个压缩文件以供发布。执行完在目录下会产生一个以PACKAGE-VERSION.tar.gz为名称的文件。 PACKAGE和VERSION这两个变数是根据configure.in文件中AM_INIT_AUTOMAKE(PACKAGE,VERSION)的定义。在此范例中会产生test-1.0.tar.gz的档案。

make distcheck:和make dist类似,但是加入检查包装后的压缩文件是否正常。这个目标除了把程序和相关文件包装成tar.gz文件外,还会自动把这个压缩文件解开,执行 configure,并且进行make all 的动作,确认编译无误后,会显示这个tar.gz文件可供发布了。这个检查非常有用,检查过关的包,基本上可以给任何一个具备GNU开发环境-的人去重新编译。

分享到:
评论

相关推荐

    mingw32-make-3.81-20080326-src.tar.gz

    4. 安装:使用make install将编译好的二进制文件安装到系统指定的位置。 Mingw32-make 3.81版本在2008年的发布,表明它可能不包含后来版本中的一些改进和优化。对于现代项目,可能需要考虑更新到更现代的版本,以...

    make-3.82.tar.gz

    use for `./make install', or whatever else. Some systems' Make programs are broken and cannot process the Makefile for GNU Make. If you get errors from your system's Make when building GNU Make, try ...

    windows 安装make (gnu make)

    make install ``` 4. 添加环境变量 为了能够在命令提示符或终端中直接运行`make`命令,你需要将MinGW或MSYS2的bin目录添加到PATH环境变量中。例如,如果MinGW的安装路径是`C:\MinGW`,则添加`C:\MinGW\bin`;如果...

    make-install

    make-install

    tmake-1.8

    5. 执行`make` 编译项目,`make install` 将编译好的程序安装到目标路径。 ### 结论 `tmake-1.8` 作为一个高效、灵活的构建工具,对于Qt和Qtopia的开发者来说是必不可少的。通过自动化和优化构建过程,它降低了...

    tmake-1.11

    编译步骤可能包括配置(configure)、编译(make)和安装(make install)等步骤。在这个过程中,用户需要确保系统已经安装了必要的编译工具链,如GCC或Visual C++。 tmake-1.11 的特性可能包括: 1. 跨平台:能在...

    ImageMagick-6.9.11-6-INSTALL.zip

    这通常涉及运行`configure`脚本,然后使用`make`和`sudo make install`来编译和安装。具体步骤如下: ```bash ./configure make sudo make install ``` 安装过程中,由于某些依赖可能未预装,可能会提示缺少库或...

    make-fetch-happen:使获取发生在npm

    $ npm install --save make-fetch-happen 目录 fetch.defaults minipass-fetch选项 make-fetch-happen选项 opts.cacheManager opts.cache opts.proxy opts.noProxy opts.ca, opts.cert, opts.key opts....

    install.rar

    apt-get install -y make apt-get install -y python apt-get install -y python-dev apt-get install -y build-essential apt-get install -y subversion apt-get install -y libncurses5-dev apt-get ...

    libXau-1.0.7源码

    下载libXau-1.0.7源码,解压缩到Home目录下,同样并新建了一个build和install的文件夹 ...再分别执行make和make install指令,成功后可以看到install目录下有了编译好后的文件(接下来的交叉编译libxcb需要依赖其)

    make-dir-cli:如有必要,建立目录及其父母-类似于`mkdir -p`,但跨平台

    $ npm install --global make-dir-cli 用法 $ make-dir --help Usage $ make-dir <directory> … Options --mode Directory permissions Examples $ make-dir unicorn/awesome foo/bar $ make-dir rainbow --...

    make-fetch-happen:加入失败者,我们正在提出要求!

    安装$ npm install --save make-fetch-happen 目录例子const fetch = require ( 'make-fetch-happen' ) . defaults ( { cacheManager : './my-cache' // path where cache will be written (and read)} )fetch ( '...

    liunux 下make命令的3.8.1版本

    5. 安装到系统:`sudo make install` 在安装新版本的`make`时,需要注意的是,系统可能已经有默认的`make`版本。为了避免冲突,可以将新版本安装到非标准路径,或者使用软链接指向新的`make`可执行文件。 总之,`...

    sikalabs-kubernetes-toolkit

    Longhorn公共仪表板make install-longhorn-ingress -Longhorn make install-longhorn-ingress 弹性堆叠 安装 make helm-repos make setup-eck make install-eck 基巴纳 网址: : 用户: elastic 密码: make ...

    make-plural:将Unicode CLDR复数规则转换为可执行JavaScript

    复数Monorepo 这是一个monorepo,提供以下npm软件包: 将复数为可执行JavaScript ...npm install npm run build 请注意,在v5版本中,编译器和CLI从规范的make-plural软件包中分离出来,并且现在使用管理项目。

    sipp-cn-reference.pdf

    yum install gcc-c++ gcc automake autoconf libtool make yum install libpcap libpcap-devel yum install ncurses ncurses-devel tar -xvzf sipp-3.4.1.tar.gz cd sipp-3.4.1 ./configure --with-pcap --with-...

    linux的32位make的rpm包

    linux的32位make的rpm包. This is the GNU variant of make(1). The purpose of this utility is to determine automatically which pieces of a large program need to be recompiled, and issue the ...make install

    nginx安装centos7.6-测过.txt

    yum install gcc-c++ yum -y install pcre* openssl* gcc* yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel tar -zxvf nginx-1.22.0.tar...make && make install

    protobuf.tar.gz

    在搭建fdbus的时候,需要使用protobuf,但是git clone失败 cd ~/workspace ...cd protobuf;git submodule update --init --recursive ...make -j4 install #build and install to build/install directory

    freeswitch音频资源,下载很慢,上传一下

    make cd-sounds-install make cd-moh-install 这两个命令下载的音频资源,直接放在安装软件的根目录下面运行就不用重新下载了 包含 freeswitch-sounds-en-us-callie-8000-1.0.52.tar freeswitch-sounds-en-us-callie...

Global site tag (gtag.js) - Google Analytics