中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機版  

Linux常用命令|Linux培訓學習|考試認證|工資待遇與招聘,認準超級網(wǎng)工!

招聘|合作 登陸|注冊

網(wǎng)絡工程師培訓

當前位置:網(wǎng)絡工程師 > 技術課程 > linux > 熱點關注 > linux常用命令

linux中的make命令

時間:2019-06-28

linux 命令_linux命令_linux命令手冊

make命令的選項和參數(shù):

-k:它的作用是讓make命令在發(fā)現(xiàn)錯誤時仍然繼續(xù)執(zhí)行,而不是在檢測到第一個錯誤時就停下來。

-n:它的作用是讓make命令輸出將要執(zhí)行的操作步驟,而不真正執(zhí)行這些操作

-f :它的作用是告訴make命令將哪個文件作為makefile文件。如果未使用這個選項linux命令,標準版本的make

命令將首先在當前目錄下查找名為makefile的文件linux命令,如果該文件不存在,它就會查找名為Makefile的文件。

linux命令手冊_linux 命令_linux命令

但如果你是在linux系統(tǒng)中,你使用的可能是GNU Make,這個版本的make命令將在搜索makefile文件和

Makefile文件之前,首先查找名為GNUmakefile的文件。

1、依賴關系

/*main.c*/
    #include "a.h"
    /*2.c*/
    #include "a.h"
    #include "b.h"
    /*3.c*/
    #include "b.h"
    #include "c.h"
    則我們可以在makefile中:
    myapp:  main.o 2.o 3.o
    main.o: main.c a.h
    2.o:    2.c a.h b.h
    3.o:    3.c b.h c.h
這表示的是myapp依賴于main.o、2.o和3.o,而main.o依賴于main.c和a.h,等等
如果想要一次創(chuàng)建多個文件,你可以使用all。
all:myapp myapp.h
如果未指定一個all目標,則make命令將只創(chuàng)建它在文件makefile中找到的第一個目標

linux命令手冊_linux 命令_linux命令

2、規(guī)則

makefile文件的第二個是規(guī)則,它們定義了目標的創(chuàng)建方式。在上節(jié)的例字中,當make命令確定

需要重建2.0時,它具體應該使用哪條命令呢?看上去只需使用命令gcc -c 2.c就夠了,但是如果

需要指定頭文件目錄,或者為了今后的調(diào)試需要設置符號信息選項又該怎么做呢?這就需要makefile

文件中明確定義一些規(guī)則。

linux 命令_linux命令手冊_linux命令

一個簡單的makefile文件:
    myapp: main.o 2.o 3.o
        gcc -o myapp main.o 2.o 3.o
    main.o: main.c a.h
        gcc -c main.c
    2.o: 2.c a.h b.h
        gcc -c 2.c
    3.o: 3.c b.h c.h
        gcc -c 3.c
    $ make -f Makefile1

makefile文件中的宏:

帶宏定義的makefile文件

all: myapp
    #which compiler
    CC = gcc
    #包含文件的位置在哪里 
    INCLUDE = .
    #發(fā)展選擇
    CSLAGS = -g -Wall -ansi
    #釋放選項
    #CFLAGS = -O -Wall -ansi
    myapp: main.c 2.o 3.o
        $(CC) -o myapp main.o 2.o 3.o
    2.o: 2.c a.h b.h
        $(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c
    3.o: 3.c b.h c.h
        #(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c
內(nèi)置宏的用法:
宏           定義
$?         當前目標所依賴的文件列表中比當前目標文件還要新的文件
$@         當前目標的名字
$<         當前依賴文件的名字
$*         不包括后綴名的當前依賴文件的名字
-:告訴make命令忽略所有錯誤
@:告訴make在執(zhí)行某條命令前不要將該命令顯示在標準輸出上
 上一個教程:Blog of Chauncy Wang