zoukankan      html  css  js  c++  java
  • 报错:make: *** No rule to make target `install'

    前不久,朱老师让写一个spec。

    我之前并没有写过spec,根本不知道这是什么,去网上查看了大量的关于spec的博客,遇到的坑很多,但是遇到最大的坑就是%install部分的make install。

    网上的资料是这样说的:

    本段是安装段,其中的命令在安装软件包时将执行,如make install命令。
    %makeinstall 这不是关键字,而是rpm定义的标准宏命令。也可以使用非标准写法:引用make DESTDIR=$RPM_BUILD_ROOT install或引用make prefix=$RPM_BUILD_ROOT install
    需要说明的是,这里的%install主要就是为了后面的%file服务的。所以,还可以使用常规的系统命令:
    引用install -d $RPM_BUILD_ROOT/
    cp -a * $RPM_BUILD_ROOT/

    但是我每次使用make install时候都会报错make: *** No rule to make target 'install'。换成install -d的写好就可以,我也不明白是为什么。

    后来发现,使用make install是在已经编写过Makefile的前提下进行的,报错中的install其实是Makefile中的写好的target。

    举个例子,在Makefile中编写,如下:

    install-oem:
        mkdir -p $(LIBDIR)/xsconsole/plugins-oem

    则在%install中就可以这样写:

    %install
    make install-oem DESTDIR=$RPM_BUILD_ROOT

    否则,当然会报错找不到target。

    朱老师说现在使用Makefile已经有点过时了。我是觉得Makefile很烦,写错了,还要重新打包,生成压缩文件才行。改多了之后根本受不了,不如直接在%install里面直接写内容,这样改起来也方便。

    【作为一个菜鸟真心不希望前辈们再不实践照抄他人博客,坑太多了】

  • 相关阅读:
    Symbol Commands
    Control Structures
    script.stub
    Lowest Common Ancestor of a Binary Search Tree
    Move Zeroes
    Odd Even Linked List
    ubuntu18.04系统安装及php7.2,apache2,mysql8,git,svn,composer,vs code 到安装 php 扩展配置php.ini 实现 laravel5.8 运行
    thinkphp3.2.3 自定义路由实践
    thinkphp3.2.3 自动验证 unique 出错的解决办法
    【重磅】中国集成电路产业基金投资版图详解
  • 原文地址:https://www.cnblogs.com/chenyaling/p/5806965.html
Copyright © 2011-2022 走看看