最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Linux下對于makefile的理解

 更新時間:2017年01月11日 09:26:09   投稿:jingxian  
下面小編就為大家?guī)硪黄P(guān)于Linux下對于makefile的理解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

什么是makefile呢?在Linux下makefile我們可以把理解為工程的編譯規(guī)則。一個工程中源文件不計數(shù),其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規(guī)則來指定,那些文件需要先編譯,那些文件需要后編譯,那些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因為makefile就像一個shell腳本一樣,其中也可執(zhí)行操作系統(tǒng)的命令。

makefile帶來的好處就是---“自動化編譯”,一旦寫好,只需要一個make命令,整個工程完全自動編譯,極大地提高了軟件開發(fā)的效率。

make命令在執(zhí)行時,需要一個makefile文件,以告訴make命令要怎樣去編譯鏈接程序。只要我們makefile寫的足夠好,make命令會自動智能的根據(jù)當(dāng)前文件自己編譯所需要的文件和鏈接目標(biāo)文件。

makefile的規(guī)則:

target:prerequisites

  command

.......................

target是目標(biāo)文件,prerequisites就是要生成target所需要的文件或是目標(biāo)。command就是make需要執(zhí)行的命令。這是一個文件依賴關(guān)系,也就是說,target這一個或多個的目標(biāo)文件依賴于prerequisites中的文件,其生成規(guī)則定義在command中。如果prerequisites中如果有一個以上的文件比target文件內(nèi)容要新的話,command所定義的文件就會被執(zhí)行。這就是makefile最核心的內(nèi)容。

舉個栗子:

先準(zhǔn)備三個文件:file1.c,file2.c,file2.h

file1.c:

#include<iostream>

int main()

{

file2printf();

return 0;

}

file2.h:

#ifndef FILE2_H_

#define FILE2_H_

void file2printf();

#endif

file2.c

#include"file2.h"

void file2printf()

{

printf("hello world!\n");

}

那么它的makefile怎么寫呢?(makefile文件和文件在同一目錄下)

test:file1.o file2.o          //test依賴file1.o和file2.o兩個目標(biāo)文件

  gcc -c file1.o file2.o -o test    //編譯出test可執(zhí)行文件,-o 表示指定的目標(biāo)文件名

file1.o:file1.c file2.h          //編譯出file1.o文件,file1.o依賴于file1.c和file2.h,-c表示GCC只把給他的文件編譯成目標(biāo)文件  

  gcc -c file1.c -o file1.o

file2.o:file2.c file2.h                       //這兩句與上兩句相同

  gcc -c file2.c -o file2.o

.PHONY:clean

clean:

rm -rf* .o test      //當(dāng)輸入make clean命令時,就會刪除所有的.o文件和test文件了

注意:每個命令行之前都必須有tab符號。

這是簡單的makefile的寫法,其實makefile還有很多的功能注意點值得學(xué)習(xí)。大家可以下去自行學(xué)習(xí)

以上這篇關(guān)于Linux下對于makefile的理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

南安市| 兴安盟| 桑日县| 枣庄市| 南川市| 巴塘县| 五莲县| 镇平县| 姜堰市| 牡丹江市| 砀山县| 方城县| 鄂托克旗| 囊谦县| 尼玛县| 花莲市| 遂宁市| 淄博市| 扶余县| 涞源县| 从化市| 陈巴尔虎旗| 宾阳县| 虎林市| 武清区| 芦山县| 台中市| 邵阳市| 汉中市| 静安区| 信丰县| 贵阳市| 时尚| 三门峡市| 南郑县| 肥乡县| 屏东市| 晋城| 炉霍县| 久治县| 晋中市|