報錯: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里面直接寫內容,這樣改起來也方便。

【作為一個菜鳥真心不希望前輩們再不實踐照抄他人博客,坑太多了】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM