• <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>
            四、makefile中使用變量

            在上面的例子中,先讓我們看看edit的規(guī)則:

                  edit : main.o kbd.o command.o display.o \
                              insert.o search.o files.o utils.o
                        cc -o edit main.o kbd.o command.o display.o \
                                   insert.o search.o files.o utils.o

            我們可以看到[.o]文件的字符串被重復(fù)了兩次,如果我們的工程需要加入一個(gè)新的[.o]文件,那么我們需要在兩個(gè)地方加(應(yīng)該是三個(gè)地方,還有一個(gè)地方在clean中)。當(dāng)然,我們的makefile并不復(fù)雜,所以在兩個(gè)地方加也不累,但如果makefile變得復(fù)雜,那么我們就有可能會(huì)忘掉一個(gè)需要加入的地方,而導(dǎo)致編譯失敗。所以,為了makefile的易維護(hù),在makefile中我們可以使用變量。makefile的變量也就是一個(gè)字符串,理解成C語(yǔ)言中的宏可能會(huì)更好。

            比如,我們聲明一個(gè)變量,叫objects, OBJECTS, objs, OBJS, obj, 或是 OBJ,反正不管什么啦,只要能夠表示obj文件就行了。我們?cè)趍akefile一開(kāi)始就這樣定義:

                 objects = main.o kbd.o command.o display.o \
                          insert.o search.o files.o utils.o

            于是,我們就可以很方便地在我們的makefile中以“$(objects)”的方式來(lái)使用這個(gè)變量了,于是我們的改良版makefile就變成下面這個(gè)樣子:

                objects = main.o kbd.o command.o display.o \
                          insert.o search.o files.o utils.o

                edit : $(objects)
                        cc -o edit $(objects)
                main.o : main.c defs.h
                        cc -c main.c
                kbd.o : kbd.c defs.h command.h
                        cc -c kbd.c
                command.o : command.c defs.h command.h
                        cc -c command.c
                display.o : display.c defs.h buffer.h
                        cc -c display.c
                insert.o : insert.c defs.h buffer.h
                        cc -c insert.c
                search.o : search.c defs.h buffer.h
                        cc -c search.c
                files.o : files.c defs.h buffer.h command.h
                        cc -c files.c
                utils.o : utils.c defs.h
                        cc -c utils.c
                clean :
                        rm edit $(objects)


            于是如果有新的 .o 文件加入,我們只需簡(jiǎn)單地修改一下 objects 變量就可以了。

            關(guān)于變量更多的話(huà)題,我會(huì)在后續(xù)給你一一道來(lái)。

            Posted on 2007-04-17 10:50 艾凡赫 閱讀(578) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C++
            久久综合综合久久狠狠狠97色88| 国产一级做a爰片久久毛片| 99久久免费国产精品| 热99re久久国超精品首页| 久久香蕉国产线看观看乱码| 成人午夜精品久久久久久久小说 | 国产视频久久| 久久久久久极精品久久久| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久久久亚洲av毛片大| 亚洲精品美女久久久久99小说| 久久亚洲中文字幕精品一区| 亚洲综合久久久| 欧美久久综合性欧美| 精品伊人久久大线蕉色首页| 久久精品国产91久久麻豆自制 | 一本一道久久a久久精品综合| 久久久久久国产精品免费无码| 亚洲国产二区三区久久| 97久久国产露脸精品国产| 国内精品久久久久久久亚洲| 久久夜色精品国产网站| 国产一区二区三区久久| 午夜精品久久久久成人| 久久Av无码精品人妻系列| 久久久久亚洲精品无码网址 | 99久久国产主播综合精品| 亚洲va久久久噜噜噜久久狠狠| 69国产成人综合久久精品| 色综合久久无码中文字幕| 久久久久亚洲av成人无码电影| 国产精品久久99| 国产日韩久久免费影院| 一本一本久久a久久综合精品蜜桃| 亚洲国产精品嫩草影院久久| 久久精品青青草原伊人| 国产精品狼人久久久久影院 | 亚洲国产二区三区久久| 国产成人久久精品激情| 久久天天躁狠狠躁夜夜avapp| 久久99精品国产一区二区三区|