• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我的CPP之路

            路漫漫其修遠兮
            隨筆 - 42, 文章 - 0, 評論 - 16, 引用 - 0
            數據加載中……

            Makefile學習筆記

            Makefile學習筆記

            先列出一個很簡單的Makefile例子:

            ---------
            hd.cpp

            #include "hd.h"

            using namespace std;

            int main() {
                cout << "hello, didier!1\n";
            }

            ---------
            hd.h

            #include <iostream>

            ---------
            Makefile    //我們稱這個為Makefile1

            hd : hd.cpp    //注意,我沒寫hd.h
                g++ -o hd hd.cpp

            ---------
            make命令編譯,當然沒問題。但是注意,第一行我沒有用如下寫法:

            hd : hd.cpp hd.h
            所以Makefile1中,hd(可執行程序)不依賴于hd.h,只依賴于hd.cpp。編譯通過是因為在Makefile1中第二行調用g++時,編譯hd.cpp時會include "hd.h"。

            這樣乍看沒問題,實際上有很大的問題,Makefile1中hd不依賴于hd.h,意思是說,如果這時候我修改hd.h,再make,make程序依然只檢測hd.cpp的版本,發現沒變化,所以不會調用第二行的g++命令。測試,果然如此。無論怎么修改hd.h,再次調用make是沒有動作的。

            不要以為在.cpp中會include頭文件就可以不在Makefile中寫依賴.h文件。這樣得到的結論,或者說啟發,就是,在一個工程中會有很多的文件依賴關系,會有很多程序員參與編碼,如果修改了所依賴的文件,我們當然希望重新編譯,所以,不要偷懶,在Makefile中一定要寫全依賴關系。

            比如這個例子,正確的寫法:

            ---------
            Makefile    //我們稱這個為Makefile2

            hd : hd.cpp hd.h
                g++ -o hd hd.cpp
            ---------

            要搞清楚的是,Makefile2中,第一行所陳列的關系,就是希望make每次運行所要檢測的文件版本變化,第二行,是希望所要執行的命令。Makefile2的依賴關系很全,每次修改hd.h,make都會重新執行。

            當然,如果不用make,直接在命令行中輸入調用g++,那么.h的修改當然會被重新編譯了。

            最后總結,在Makefile的編寫中,每一個編譯文件一定要寫全其依賴關系,即使在cpp中會包含頭文件。


            posted on 2010-12-25 08:48 yanvenhom 閱讀(914) 評論(0)  編輯 收藏 引用 所屬分類: Makefile

            国产精品伊人久久伊人电影| 久久天天躁狠狠躁夜夜2020| 国产精品久久久久久久久久免费| 伊人久久大香线蕉亚洲五月天| 久久婷婷五月综合成人D啪| 一本一道久久综合狠狠老| 久久99国产精品二区不卡| 国产亚洲精午夜久久久久久| 午夜精品久久久久9999高清| 久久婷婷五月综合成人D啪| 亚洲国产天堂久久综合网站| 久久精品一本到99热免费| 国产精品毛片久久久久久久| MM131亚洲国产美女久久| 午夜不卡久久精品无码免费 | 狠狠色伊人久久精品综合网| 久久综合综合久久狠狠狠97色88 | 国産精品久久久久久久| 中文字幕精品久久久久人妻| 久久精品国产亚洲AV蜜臀色欲 | 国产免费福利体检区久久| 无码人妻精品一区二区三区久久| 久久精品国产亚洲av麻豆小说| 久久99精品久久久久久齐齐| 久久亚洲精品人成综合网| 久久久久九国产精品| 精品久久久久久久| 无码人妻久久一区二区三区免费| 久久久精品久久久久久 | 久久人妻AV中文字幕| 久久久WWW成人| 久久精品国产99国产精偷| 久久亚洲日韩精品一区二区三区| 亚洲伊人久久成综合人影院 | 2021国产精品午夜久久| 国产精品99久久久久久猫咪| 久久中文精品无码中文字幕| 久久激情五月丁香伊人| 久久久久亚洲精品无码蜜桃| 亚洲精品乱码久久久久久按摩| 色妞色综合久久夜夜|