編譯單個目標:
本文檔僅爲個人記錄:
OBJ = jhy
objects:=make_b.o make_c.o
$(OBJ):$(objects)
$(CC) -o $@ $^
#$(ULDFLAGS)
dep_files := $(foreach f,$(objects),.$(f).d)
dep_files := $(wildcard $(dep_files))
III := -I./make_h/
ifneq ($(dep_files),)
include $(dep_files)
endif
%.o:%.c
$(CC) -c -Wp,-MD,[email protected] $(III) -o $@ $<
clean:
rm -rf $(OBJ) *.o .*.o.d *.o.d
------------------------------------------------------------------------------------------------------------
文件內容:
make_b:
#include <stdio.h>
#include "make_b.h"
#include "main_d.h"
void out(void)
{
printf("ddmake_b22 %d\n",AA);
printf("make_d %d\n",gg);
}
make_b.h:
#ifndef _MAKE_B_H_
#define _MAKE_B_H_
#define AA 7
void out(void);
#endif
make_C.C:
#include <stdio.h>
#include "make_b.h"
#include "make_c.h"
int main(char argc, char *argv[])
{
printf("1234 -%d\n",BB);
out();
return 1;
}
make_c.h
#ifndef _MAKE_C_H_
#define _MAKE_C_H_
#define BB 55
#endif
make_d.h
#ifndef _MAKE_D_H_
#define _MAKE_D_H_
#define gg 15
#endif
make_d.c
#include <stdio.h>
#include "main_d.h"
int main(void)
{
printf("make_d\n");
return 1;
}