我目前正在做 Linux From Scratch。
- 配置
- 製作
- 進行測試
- 進行安裝
還有一件事什麼是 makefile ?
請向我解釋一下這些命令的用途,特別是在 LFS 方面。
答案1
我(有點)知道它的作用,但我不確定我是否知道如何解釋。
基本上,按照您提到的命令序列,您正在從原始程式碼(即用程式語言編寫的程式碼)創建二進位可執行形式(程式、庫)的東西,並將其安裝在作業系統中(將其移動到適當的資料夾) 、設定設定檔等)。
makefile 是 make 指令使用的文字檔。它有助於(自動化)任務。單一 makefile 可能包含 make 要執行的多個任務或操作的資訊。如果沒有 makefile,您將必須執行許多複雜的手動步驟才能完成工作。
「配置」:(解釋取自這裡) 檢查有關要安裝軟體的電腦的一些詳細資訊。該腳本檢查系統上的大量依賴項。為了使特定軟體正常工作,可能需要您的電腦上已經存在很多東西。如果您的系統缺少任何主要要求,配置腳本將退出,並且您無法繼續安裝,直到您獲得這些必需的東西。否則,它將建立要在下一步中使用的 Makefile。
不含參數的「make」:指示make執行makefile中的預設動作(規則)。這通常會編譯、連結並產生您嘗試建立的二進位(即程式或函式庫)。這通常涉及將原始程式碼轉換為目標檔案(通常具有副檔.o
名)並將它們連結到最終的二進位檔案(對於 Linux 程式通常沒有擴展名,或者對於 Linux 程式庫通常具有.so
或.a
擴展名)。我不確定這些步驟,因為我是 Java 程式設計師,我們不經常執行這些步驟)。
“make test”:對此二進位執行測試。
“make install”:基本上將二進位檔案移到正確的資料夾位置。
這個解釋當然可以得到很多改進,我只是想讓你了解一般過程。
這個簡短的教程可能會提供更多資訊。
答案2
使用 aMakefile
可以讓開發人員和最終用戶的生活變得更輕鬆。基本上,它是如何建立特定軟體的備忘單。對於一個簡單的“Hello world”,ag++ hw.cpp -o hello_world
可以工作。然而,當您擁有更複雜的軟體時,通常必須先建立 A 部分,然後再建立 B 部分,一旦這兩個部分完成,就可以建立 C 部分。手動輸入這些內容 - 以及插入包含的庫、臨時輸出檔案、最終安裝路徑等的路徑(通常在腳本configure
運行時確定) - 可能會導致錯誤。