下面先写几个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"