Linux学习之利用Makefile管理软件工具

下面先写几个c语言代码,然后用一个Makefile文件来对其进行管理。

main.c程序内容:

#include <stdio.h>
#include "say_hello.h"
#include "say_goodbye.h"
int main(void)
{
   say_hello();
   say_goodbye();
   return 0;
}

say_hello.c程序内容:

#include "say_hello.h"
void say_hello(void)
{
    printf("hello everyone...\n");
}

say_goodbye.c程序内容:

#include "say_goodbye.h"
void say_goodbye(void)
{
    printf("goodbye everyone...\n");
}

say_hello.h程序内容:

#ifndef _SAY_HELLO_H
#define _SAY_HELLO_H
#include <stdio.h>
void say_hello(void);
#endif

say_goodbye.h程序内容:

#ifndef _SAY_GOODBYE_H
#define _SAY_GOODBYE_H
#include <stdio.h>
void say_goodbye(void);
#endif

最后编写管理以上C代码的Makefile文件代码内容如下:

TARGET=main
LINKFILE+=main.o
LINKFILE+=say_hello.o
LINKFILE+=say_goodbye.o
${TARGET}:${LINKFILE}
    gcc $^ -o $@
    echo "****$^ ****$@"
    echo "****"
    ./${TARGET}
    echo "****"
clean:
    rm -rf *.o
    rm -rf main
    rm -rf a.out

在工程目录下,执行make命令,结果如下图所示:

说明:

      $@    表示目标文件 

扫描二维码关注公众号,回复: 11933983 查看本文章

      $^      表示目标文件后的所有依赖文件,即.o文件

     利用 echo 主要是为了查看调试信息

特别注意:Makefile文件中,前几行代码的=前后不能有空格,不然编译时会报错 "gcc: no input files"

猜你喜欢

转载自blog.csdn.net/weixin_44928892/article/details/103465866