九色91_成人精品一区二区三区中文字幕_国产精品久久久久一区二区三区_欧美精品久久_国产精品99久久久久久久vr_www.国产视频

Hello! 歡迎來到小浪云!


Hacker基礎之Linux篇:進階Linux命令一


今天我們將深入探討一些更高級的linux知識,具體來說是關于linux c程序的構建。

在日常的IT生活中,我們經常需要在源碼環境下編譯并安裝軟件。這也是開源軟件的一個顯著特點,而Windows中的閉源軟件通常不提供這種源碼編譯安裝的方式。

程序的構建過程通常會經歷以下幾個階段:

配置

配置階段的目的是檢查當前環境是否滿足安裝該軟件的依賴關系。這可以被視為開源軟件的一個缺點,因為開源軟件的開發者通常使用其他開源庫或工具來構建自己的程序。當我們想要運行他們的軟件時,就需要檢查我們的系統中是否已經安裝了這些庫或工具

此外,配置階段還包括設置一些安裝必需的信息,如安裝路徑、需要安裝的組件等。配置完成后,會生成一個Makefile文件,供下一步的make命令使用。

開源軟件的開發者通常會提供一個configure文件,這個文件是通過autotool等工具生成的。關于configure文件的生成涉及到其他工具的使用和C/c++的知識,這里就不深入介紹了。

我們可以通過以下命令查看configure文件的可用選項:

./configure --help

或者我們可以配置程序的安裝路徑:

./configure --prefix=/usr/local/my

通常,我建議直接使用開發者默認的配置:

./configure

這樣,程序會自動檢測我們的系統環境,并列出我們缺少的文件。

我們以一個名為Shadow的軟件為例進行演示。

Hacker基礎之Linux篇:進階Linux命令一

從開發者的網站下載并解壓這個軟件后,進入目錄,你會發現里面的結構大致如下。

按照上述步驟執行 ./configure 看看:

Hacker基礎之Linux篇:進階Linux命令一

之后你會看到,configure文件開始檢測系統環境是否滿足安裝需求。

通常,開發者會在其gitHub頁面上列出需要安裝的依賴包,我們可以根據我們的系統版本來查找這些依賴。

例如,這里我們可以在github上找到開發者提供的以下內容:

Hacker基礎之Linux篇:進階Linux命令一

由于我們的系統是Fedora & RHEL類的,所以我們可以點擊這里查看需要安裝的依賴:

Hacker基礎之Linux篇:進階Linux命令一

安裝完依賴后,再次執行 ./configure 就不會出現錯誤了:

Hacker基礎之Linux篇:進階Linux命令一

(我悄悄換了一臺已經安裝好依賴的機器~)

接下來,我們可以進行下一步,編譯。

編譯

顧名思義,編譯就是將源文件進行編譯鏈接生成可執行程序。

在執行完上述配置步驟后,目錄中會出現一個Makefile文件。

你可能會說,我們之前已經看到了Makefile文件了。好的,我們來對比一下執行configure前后的區別

以下是未執行configure之前的,確實有Makefile.am和Makefile.in兩個文件,但它們并不是Makefile。

如果使用過automake的同學就會清楚這兩個文件的作用(不過這種同學可能不會來看這種文章哈哈哈):

Hacker基礎之Linux篇:進階Linux命令一

然后是執行完 ./configure 之后的:

Hacker基礎之Linux篇:進階Linux命令一

已經多出了幾個文件,最重要的是有了Makefile這個文件。

我們這里不討論Makefile是如何編寫的,這個比較復雜,一般需要寫c語言超過一年以上的同學才能完全理解,而且對于用戶來說,沒必要知道程序的編譯過程。

需要注意的是,Linux中的make命令會自動在當前目錄下查找名為Makefile或makefile的文件來加載。

對于依賴較少且代碼結構簡單的代碼,可以手動編寫Makefile,這樣可以省去第一步的配置工作。

但是對于依賴較多且代碼結構復雜的項目,最好還是使用程序自動生成的Makefile。

這里簡單介紹一下在Linux下編譯文件。

假設我們有一個名為linux-test.c的C文件,如何編譯它?

可以使用gcc命令:

gcc linux-test.c -o lt

這里的linux-test.c是我們編寫的代碼,-o之后接的是我們希望編譯后程序的名字,這里是lt。

如果你編寫的是C++代碼,要使用g++命令。

好了,我們繼續編譯。一個文件我們可以用gcc,但是一文件的編譯,我們就需要用到make了。

現在我們有了Makefile文件,我們就可以執行make了:

Hacker基礎之Linux篇:進階Linux命令一

這樣,程序就會自動鏈接和編譯文件了。

最后等待一會兒,編譯完成。

安裝

在Linux中,安裝就簡單多了。如果你完成了上述幾個步驟,只需將生成的可執行程序復制到你想要的地方即可。

但是我們有一個簡單的命令:

make install

其實install是Makefile中的一個規則,我們可以打開Makefile來查看或編輯,但這是不建議的。

Hacker基礎之Linux篇:進階Linux命令一

之后,程序就會自動復制到代碼編寫者指定的地方了。

這樣,我們的程序就安裝完成了。

相關閱讀

主站蜘蛛池模板: 99国内精品久久久久久久 | 中文字幕一区二区三区精彩视频 | 日本福利在线 | 日本在线视频不卡 | 日本免费视频 | 女人一区 | 成人网av | 免费国产黄网站在线观看视频 | 成人av色 | 欧美偷偷操 | 国产精品不卡视频 | 国产精品福利网站 | 精品1区2区 | 91精品国产综合久久小仙女图片 | 色伊人网 | 黄色一级视频 | 欧美h视频 | 瑟瑟视频在线看 | 日本黄色不卡视频 | 黄色一级片在线播放 | 一区二区三区在线播放 | 午夜影院官网 | 国产精品视频一二三区 | 久久久国产精品视频 | 国产视频综合 | 午夜性色a√在线视频观看9 | 97日日碰人人模人人澡分享吧 | 一区二区不卡视频 | 精品国产99| 国产欧美精品区一区二区三区 | 国产精品美女一区二区 | 国产综合一区二区 | 99精品久久久久久 | 日韩精品一区二区三区视频播放 | 91精品国产综合久久婷婷香蕉 | 欧美精产国品一二三区 | 亚洲精品久久久久久国产精华液 | 欧美一区二区三区在线观看视频 | 日本午夜视频 | 精品日韩一区 | 成年人网站国产 |