linux历程--Makefile工程管理

来源:互联网 发布:查看文件夹大小 linux 编辑:程序博客网 时间:2024/06/05 10:49

1)简介:make在执行时,需要一个名为Makefile的文件,Makefile文件描述了整过工程的编译,连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建哪些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行行文件。


2)规则:用于说明如何生成一个或多个目标文件。
   规则格式:
        target(目标):prerequisites(依赖)
            command(命令)
   如: main.o:main.c
            gcc -c main.c

   注意:命令必须以【TAB】键开始。


3)目标:在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么,一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终目标。


4)文件名:make命令会在当前目录下寻找名为Makefile或makefile的文件,当名字不为这两者之一时,可用如下命令指定:

         make -f 文件名


5)伪目标:Makefile中把那些没有任何依赖只有执行动作的目标称为“伪目标”(phony targets)。


6)变量:在makefile中,存在系统默认的自动化变量
     $^ :代表所有的依赖文件
     $@ :代表目标
     $< :代表第一个依赖文件
   如:   hello:main.o func1.o func2.o
                gcc main.o func1.o func2.o -o hello
   等效于
          hello:main.o func1.o func2.o

                gcc $^ -o $@


7)杂项:Makefile中“#”字符后的内容视为注释
         @ : 表示取消回显
   如:    hello:hello.c
               @gcc hello.c -o hello
原创粉丝点击