Linux(17)-Make编译,Configure
Make編譯機制,Configure
- 1.Make機制
- demo1.make編譯
- demo2.make清理
- demo3:make 安裝
- demo4:make 卸載
- 2.configure
- 2.1 Autoconf
- 2.2 軟件的源碼安裝
軟件發布的一些基礎知識。
內存泄漏–如果一個長時間運行的程序,不斷申請新的控價,而且不釋放。內存空間被一點一點地消耗光。
內存管理機制
free 命令查看內存使用情況(單位為KB)
發布軟件
本機編譯得到的二進制文件,需要很多庫文件來協助才能運行的起來。
查看程序的依賴庫,使用ldd命令。
lld ./rubbish1115
因為需要眾多庫文件協助,所以在Linux上發布軟件時都是發布源碼包,然后在目標系統上再編譯一遍。
1.Make機制
Make 也是一個程序,用于統籌規劃文件編譯。通過Makefile來實現統籌規劃。能夠依據文件修改的時間,智能地判斷出哪些模塊需要重新編譯,重新連接。
windows下的VC也是類似的作用,只不過把他們都用圖形界面封裝了起來。
make 命令運行的時候,會在當前目錄下查抄Makefile 或者 makefile文件。找到就執行,沒找到就報錯。makefile每一段的格式都類似
目標:原料 <tab>加工方法demo1.make編譯
all:main.o part1.o part2.o gcc main.o part1.o part2.o -o mybin main.o:mian.cgcc -c main.c part1.o:part1.cgcc -c part1.c part2.o:part1.cgcc -c part2.cdemo2.make清理
clean:rm ./*.orm mybindemo3:make 安裝
將編譯好的mybin文件,復制到系統中相應的目錄中,完成安裝
install:mybincp ./mybin /user/bin/demo4:make 卸載
作為一個標準的GNU軟件,生成的makefile中應該高喊uninstall的定義。如果不規范的軟件,沒有提供uninstall方法,就只能手動刪除了。
make uninstall
(瞎猜,盲寫)
uninstall:rm /user/bin/mybin2.configure
檢查編譯的各種條件是否必備,檢查各種條件都必備之后,會生成Makefile文件。
鐵打的make只有一個,流水的configure每個軟件一個。
運行./configure 之后,會檢查各種各樣的條件,例如 “checking for xxxxx yes/no”, 不是必須的材料沒有了也就沒有了。如果必須的東西沒有了,那么confiugre就會報錯并停止。
2.1 Autoconf
自動生成configure文件(幾萬行,自己敲時不可能了。)
autoscan
# AC_INIT(main.c)--說明這個工程主要的圖紙是那個文件. # AM_INIT_AUTOMAKE(rubbish1115,1.0)--說明這個項目的名稱,叫做rubbish115, 版本是1.0. # AC_PROG_CC--configure需要檢查C語言編譯器是否正常. # AC_OUTPUT(Makefile)--configure需要產生的文件叫Makefile.aclocal
3.autoconf-依據configure.in 和aclocal.m4生成configure腳本
4.automake–生成configure腳本能夠識別和使用的makefile.in文件(自己寫的makefile文件不管用)。需要(人為)提供草稿文件makefile.am。
makefile.am文件內容
Automake主要幫助開發GNU軟件的人員來維護軟件,所以在執行Automake時,默認會檢查目錄下是否存在標準GNU軟件中應具備的文件,例如NEWS,AUTHOR, ChangeLog等文件。設置foreign,則會忽略對這些文件的檢查。
2.2 軟件的源碼安裝
原料都準備好之后,依次運行以下三條命令,就能把軟件安裝上
./configure
make
make install
總結
以上是生活随笔為你收集整理的Linux(17)-Make编译,Configure的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在页游中LUA的应用(1)
- 下一篇: linux下的RPC