[Linux]make,MakeFile 使用学习

[Linux]make,MakeFile 使用学习

最近由于任务需要,要对make 和Makefile进行学习,早就想要对makefile进行一个系统的学习了,现在就借这个机会来学。

1.什么是makefile 和 make

make 命令执行的就是根据Makefile里定义的一系列编译 连接规则,将源代码自动编译为 .obj(.o)中间件 进而link为一个完整的应用程序

2.Makefile的基本格式如何?

2.1基本规则

以下是Makefile文件的基本规则

    target ... : prerequisites ...
            command
            ...
            ...

其中 target 就是要make的目标文件 ,可以是一个 Object 也可以是执行文件,还可以是一个标签 (如 make label1,而label1指定了其它的操作)  prerequisites 就是要完成这个target需要的原料  command 即为完成这个target需要的操作(就是各种命令,不局限于编译命令)

2.2Makefile示例

    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

    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 main.o kbd.o command.o display.o /
               insert.o search.o files.o utils.o

 

Leave a Reply

Your email address will not be published. Required fields are marked *

14 − eleven =

This site uses Akismet to reduce spam. Learn how your comment data is processed.