Makefile (二)

一、line1的源码

  •  line1.h
#ifndef _LINE_1_H 
#define _LINE_1_H 
	void line1_print(const char *strMsg);
#endif
  • line1.cpp
#include "line1.h"
#include <stdio.h>
void line1_print(const char *strMsg)
{
	printf("This is line1 print %s.\r\n",strMsg);
}

二、line2的源码

  • line2.h
#ifndef _LINE_2_H 
#define _LINE_2_H 
	void line2_print(const char *strMsg);
#endif
  • line2.cpp
#include "line2.h"
#include <stdio.h>
void line2_print(const char *strMsg)
{
	printf("This is line2 print %s.\r\n",strMsg);
}

三、main的源码

  • main.cpp
#include "line1.h"
#include "line2.h"
 
int main(int argc,char **argv)
{
	line1_print("hello runfarther");
	line2_print("hello runfarther");
	
	return 0;
}

Makefile一般的格式是:

target:components 
	rule

二、$@、$^、$<

这三个分别表示:

  • $@          --代表目标文件(target)
  • $^            --代表所有的依赖文件(components)
  • $<           --代表第一个依赖文件(components中最左边的那个)。

简化的Makefile文件为:

main.out:main.o line1.o line2.o
    g++ -o $@ $^
main.o:main.c line1.h line2.h
    g++ -c $<
line1.o:line1.c line1.h
    g++ -c $<
line2.o:line2.c line2.h
    g++ -c $<

猜你喜欢

转载自blog.csdn.net/isunbin/article/details/84986670