Makefile条件编译

来源:互联网 发布:人工智能的应用有哪些 编辑:程序博客网 时间:2024/06/06 18:55

#include<stdio.h>
#include<string.h>


int main()
{
#ifdef LINE
    printf("define line\n");
#else
    printf("not define line\n");
#endif
return 0;
}


上面是源文件,此程序的目的是根据条件决定是要用每次一行输入还是一个单词输入,基于此可以写一个makefile如下:


MYDEF=-DLINE
tiaojian:tiaojian.o
gcc tiaojian.o -o tiaojian//此处注意一定要以一个Tab键作为开头
tiaojian.o:tiaojian.c
gcc ${MYDEF} -c tiaojian.c -o tiaojian.o


之后直接在终端输入make getword即可生成getword可执行文件

makefile的基本规则是:

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

    target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

    prerequisites就是,要生成那个target所需要的文件或是目标。

    command也就是make需要执行的命令。(任意的Shell命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容

0 0
原创粉丝点击