• <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的規則:

                  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]文件的字符串被重復了兩次,如果我們的工程需要加入一個新的[.o]文件,那么我們需要在兩個地方加(應該是三個地方,還有一個地方在clean中)。當然,我們的makefile并不復雜,所以在兩個地方加也不累,但如果makefile變得復雜,那么我們就有可能會忘掉一個需要加入的地方,而導致編譯失敗。所以,為了makefile的易維護,在makefile中我們可以使用變量。makefile的變量也就是一個字符串,理解成C語言中的宏可能會更好。

            比如,我們聲明一個變量,叫objects, OBJECTS, objs, OBJS, obj, 或是 OBJ,反正不管什么啦,只要能夠表示obj文件就行了。我們在makefile一開始就這樣定義:

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

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

                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 文件加入,我們只需簡單地修改一下 objects 變量就可以了。

            關于變量更多的話題,我會在后續給你一一道來。

            Posted on 2007-04-17 10:50 艾凡赫 閱讀(570) 評論(0)  編輯 收藏 引用 所屬分類: C++
            9久久9久久精品| 国产一区二区三区久久| 性做久久久久久免费观看 | 99国产欧美久久久精品蜜芽 | 久久精品国产亚洲77777| 亚洲精品乱码久久久久久蜜桃图片 | 久久久久久久99精品免费观看| 99久久亚洲综合精品网站| 日韩亚洲国产综合久久久| 久久亚洲精品国产精品| 久久久国产精品福利免费| 亚洲精品美女久久久久99小说| 天天爽天天狠久久久综合麻豆| 久久综合欧美成人| 无码任你躁久久久久久老妇App| 久久亚洲美女精品国产精品| 久久久久噜噜噜亚洲熟女综合| 亚洲av伊人久久综合密臀性色| 蜜桃麻豆www久久| 国产亚洲美女精品久久久2020| 国产精品成人无码久久久久久| 久久综合给合久久狠狠狠97色| 久久夜色精品国产www| 精品久久久久久久| 久久天天躁狠狠躁夜夜96流白浆| 久久久99精品成人片中文字幕 | 日产精品久久久久久久| 久久综合给合综合久久| 精品久久久久久综合日本| 77777亚洲午夜久久多人| 久久青青草原精品国产不卡| 国产精品青草久久久久婷婷| 无码AV中文字幕久久专区| 久久天天躁狠狠躁夜夜avapp| 欧美精品丝袜久久久中文字幕| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 999久久久无码国产精品| 久久99亚洲网美利坚合众国| 香蕉久久av一区二区三区| 99久久99久久精品国产片果冻| 中文字幕亚洲综合久久菠萝蜜|