• <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之路

            路漫漫其修遠(yuǎn)兮
            隨筆 - 42, 文章 - 0, 評(píng)論 - 16, 引用 - 0
            數(shù)據(jù)加載中……

            Makefile學(xué)習(xí)筆記

            Makefile學(xué)習(xí)筆記

            先列出一個(gè)很簡單的Makefile例子:

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

            #include "hd.h"

            using namespace std;

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

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

            #include <iostream>

            ---------
            Makefile    //我們稱這個(gè)為Makefile1

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

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

            hd : hd.cpp hd.h
            所以Makefile1中,hd(可執(zhí)行程序)不依賴于hd.h,只依賴于hd.cpp。編譯通過是因?yàn)樵贛akefile1中第二行調(diào)用g++時(shí),編譯hd.cpp時(shí)會(huì)include "hd.h"。

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

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

            比如這個(gè)例子,正確的寫法:

            ---------
            Makefile    //我們稱這個(gè)為Makefile2

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

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

            當(dāng)然,如果不用make,直接在命令行中輸入調(diào)用g++,那么.h的修改當(dāng)然會(huì)被重新編譯了。

            最后總結(jié),在Makefile的編寫中,每一個(gè)編譯文件一定要寫全其依賴關(guān)系,即使在cpp中會(huì)包含頭文件。


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

            99久久精品免费看国产一区二区三区 | 欧美久久久久久午夜精品| 91精品国产91久久久久久蜜臀| 久久精品国产只有精品66| 久久久亚洲裙底偷窥综合| 久久国产精品国产自线拍免费| 久久无码AV中文出轨人妻 | 好久久免费视频高清| 国产精品久久新婚兰兰| 国产三级精品久久| 99久久精品国产免看国产一区| 久久久久免费视频| 99久久婷婷国产综合亚洲| 久久久久久精品久久久久| 国产亚洲色婷婷久久99精品91| 久久夜色精品国产噜噜亚洲AV| 色综合久久天天综线观看| 国产高潮国产高潮久久久| 久久妇女高潮几次MBA| 久久久人妻精品无码一区| 国产精品日韩欧美久久综合| 精品久久久久久亚洲精品| 国内高清久久久久久| 国产精品久久久久久久久久影院| 久久99精品久久久久久齐齐| 久久99国产精品久久| 国产精品一区二区久久国产| 午夜精品久久久久久99热| 少妇人妻88久久中文字幕| 东方aⅴ免费观看久久av| 欧美亚洲国产精品久久| 亚洲欧美伊人久久综合一区二区 | 亚洲国产美女精品久久久久∴ | 久久99国产精一区二区三区| www.久久精品| 一本大道久久a久久精品综合| 狠狠色婷婷综合天天久久丁香| 精品一区二区久久| 777久久精品一区二区三区无码| 国产午夜精品理论片久久| 久久久久这里只有精品|