當前位置:首頁 » 操作系統 » linuxmake

linuxmake

發布時間: 2022-01-11 15:21:45

A. linux下的make是什麼,它是不是調用另外的編譯

在 Unix 上寫程式的人大概都碰過 Makefile,尤其是用 C 來開發程序的人。用 make來開發和編譯程式的確很方便,可是要寫出一個 Makefile就不簡單了。偏偏介紹 Makefile 的文件不多,GNU Make 那份印出來要幾百頁的文件,光看完 Overview 就快陣亡了,難怪許多
人聞 Unix 色變。

本文將介紹如何利用 GNU Autoconf 及 Automake 這兩套軟體來協助我們『自動』產生 Makefile 檔,並且讓開發出來的軟體可以像 Apache, MySQL 和常見的 GNU 軟體一樣,只要會 ``./configure'', ``make'', ``make install'' 就可以把程式安裝到系統中。如果您有
心開發 Open Source 的軟體,或只是想在 Unix 系統下寫寫程式。希望這份介紹文件能幫助您輕松地進入 Unix Programming 的殿堂。

1. 簡介

Makefile 基本上就是『目標』(target), 『關連』(dependencies) 和『動作』三者所組成的一連串規則。而 make 就會根據 Makefile 的規則來決定如何編譯 (compile) 和連結 (link) 程式。實際上,make 可做的不只是編譯和連結程式,例如 FreeBSD 的 port collect
ion 中, Makefile 還可以做到自動下載原始程式套件,解壓縮 (extract) ,修補 (patch),設定,然後編譯,安裝至系統中。

Makefile 基本構造雖然簡單,但是妥善運用這些規則就也可以變出許多不同的花招。卻也因此,許多剛開始學習寫 Makefile 時會感到沒有規范可循,每個人寫出來的 Makefile 長得都不太一樣,不知道從何下手,而且常常會受限於自己的開發環境,只要環境變數不同或路
徑改一下,可能Makefile 就得跟著修改。雖然有 GNU Makefile Conventions (GNU Makefile 慣例) 訂出一些使用 GNU 程式設計時撰寫 Makefile 的一些標准和規范,但是內容很長而且很復雜, 並且經常做些調整,為了減輕程式設計師維護 Makefile 的負擔,因此有了Automake。

程式設計師只需寫一些預先定義好的巨集 (macro),交給 Automake 處理後會產生一個可供Autoconf 使用的 Makefile.in 檔。再配合利用Autoconf 產生的自動設定檔 configure即可產生一份符合 GNU Makefile慣例的 Makeifle 了。

詳細內容看這里

B. linux下的make命令怎麼沒用

是因為linux中沒有安裝g++編譯器,只需安裝即可解決。具體操作步驟如下:

1、首先在Linux下按下「Alt + Ctrl + t」鍵,彈出窗口。然後輸入「stdo -i",單擊回車。

C. Linux中make, make install命令分別是什麼,用法

make是用來編譯的,它從Makefile中讀取指令,然後編譯。

make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

用法:

1、make:

這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟體需要調用perl或python來進行編譯)。

如果 在 make 過程中出現 error ,就要記下錯誤代碼(注意不僅僅是最後一行),然後可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址)。

或者系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。

make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能。

比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。

make 是 Linux 開發套件裡面自動化編譯的一個控製程序,他通過藉助 Makefile 裡面編寫的編譯規范進行自動化的調用 gcc 、ld 以及運行某些需要的程序進行編譯的程序。

一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。

2、make install

這條命令來進行安裝(當然有些軟體需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 許可權(因為要向系統寫入文件)。

(3)linuxmake擴展閱讀

當我們在使用make命令時,常常會在make後面加上其他單詞,比如check,install,installcheck…這些單詞都是make的參數,我們稱之為「目標(targets)」。

最常見的幾個目標:

make all:編譯程序、庫、文檔等(等同於make)

make install:安裝已經編譯好的程序。復制文件樹中到文件到指定的位置

make unistall:卸載已經安裝的程序。

make clean:刪除由make命令產生的文件

make distclean:刪除由./configure產生的文件

make check:測試剛剛編譯的軟體(某些程序可能不支持)

make installcheck:檢查安裝的庫和程序(某些程序可能不支持)

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

D. make是linux的自帶的還是需要安裝編譯器才有make功能

make程序不是Linux系統自帶的,也不是編譯器帶的,不要按照IDE的概念去理解(Windows下面的IDE一安裝什麼工具都有了),make工具是需要另外安裝的。
比如說我的Linux系統上,當時搭建開發環境時是這樣安裝的:(我的系統是Fedora,所以用的yum)
yum install make gcc gcc-c++
看,編譯器和make是分開安裝的哈。
make工具是需要makefile的時候才用,而makefile是多個源文件的時候才有,如果你編譯一個helloworld程序,直接用gcc或g++編譯就可以了,從這點來看,也沒理由把make和編譯器捆綁在一起。

E. linux make命令什麼意思

Make的概念:

Make這個詞,英語的意思是"製作"。Make命令直接用了這個意思,就是要做出某個文件。比如,要做出文件a.txt,就可以執行下面的命令。

代碼如下:

$ make a.txt

但是,如果你真的輸入這條命令,它並不會起作用。因為Make命令本身並不知道,如何做出a.txt,需要有人告訴它,如何調用其他命令完成這個目標。

比如,假設文件 a.txt 依賴於 b.txt 和 c.txt ,是後面兩個文件連接(cat命令)的產物。那麼,make 需要知道下面的規則。

代碼如下:

a.txt: b.txt c.txt
cat b.txt c.txt > a.txt

也就是說,make a.txt 這條命令的背後,實際上分成兩步:第一步,確認 b.txt 和 c.txt 必須已經存在,第二步使用 cat 命令 將這個兩個文件合並,輸出為新文件。

像這樣的規則,都寫在一個叫做Makefile的文件中,Make命令依賴這個文件進行構建。Makefile文件也可以寫為makefile, 或者用命令行參數指定為其他文件名。

代碼如下:

$ make -f rules.txt
# 或者
$ make --file=rules.txt

上面代碼指定make命令依據rules.txt文件中的規則,進行構建。

總之,make只是一個根據指定的Shell命令進行構建的工具。它的規則很簡單,你規定要構建哪個文件、它依賴哪些源文件,當那些文件有變動時,如何重新構建它。

F. linux 在哪個目錄 make make install

make的當然是在源代碼文件的目錄,因為make命令執行的,其實是一個名為makefile,或者是名為Makefile(Linux是大小寫敏感的)的文件里的內容,這個文件就是你下載的源代碼壓縮包,解壓後的目錄裡面的,和代碼文件位於同一個目錄。
而make install執行的其實是Makefile裡面的,一個名為「install」的「目標」(「目標」是Makefile裡面的一個概念),這個「目標」後面跟的是一段命令,可以理解為「目標」後跟了一段shell腳本,這段命令執行的就是把make好的程序安裝到系統的操作。如果你要看看具體install到了那個目錄,可以查看這個Makefile文件的內容,看看install這個「目標」中定義的安裝目錄的宏(「宏」也是Makefile中的一個概念),宏是全部大寫的變數,這個宏類似於$(INSTDIR)這種字樣。

G. 在linux中執行make之後,終端顯示的make[1]之後又有make[2]還有make[3]之類的,這是什麼意思

這個應該是make的依賴層次吧,make[1]指的是當前make的對象距離最初make的目標對象有1層依賴關系,make[2]指的是當前make的對象距離最初make的目標對象有2層依賴關系,距離某個make[1]目標對象有1層依賴關系,以此類推。
這個層次的問題基本可以無視,你要關心的是有沒有出現error或者warning

H. Linux裡面make和make install區別是什麼

make是進行編譯,結果文件還是在本目錄下,make install是安裝到指定目錄,這樣後續使用程序到安裝目錄才可以,當然這些起始都是makefile文件里的配置

I. linux下如何查看make的版本, 即$(MAKE_VERSION)

如果是在 shell 中查看,那麼直接 make -v 即可。

如果是在 makefile 中獲取,則用 $(MAKE_VERSION), 比如下面的makefile

.PHONY: all
all:
echo "VERSION is $(MAKE_VERSION)"

然後在包含此makefile的目錄下 make,就會看到相應的列印了。

注意, MAKE_VERSION 是 makefile 中的一個自帶變數,不是shell環境變數,所以不能在 shell 下直接 用 $MAKE_VERSION

熱點內容
實測華為編譯器 發布:2024-09-19 23:50:52 瀏覽:820
linux匯總 發布:2024-09-19 23:46:39 瀏覽:452
阿里雲伺服器環境搭建教程 發布:2024-09-19 23:21:58 瀏覽:837
黃色文件夾圖標 發布:2024-09-19 23:19:22 瀏覽:684
mysql資料庫導出導入 發布:2024-09-19 23:00:47 瀏覽:183
lua腳本精靈 發布:2024-09-19 23:00:41 瀏覽:659
任務欄文件夾圖標 發布:2024-09-19 22:54:25 瀏覽:101
解壓來一波 發布:2024-09-19 22:46:36 瀏覽:933
mysqlpythonubuntu 發布:2024-09-19 22:46:27 瀏覽:501
伺服器請求獲取ip地址 發布:2024-09-19 22:33:25 瀏覽:515