先上代码,在代码目录下使用makefile,生成可以执行文件
main:main.o mytool1.o mytool2.o
gcc main.o mytool1.o mytool2.o -o main
main.o:main.c
gcc -c main.c -o main.o
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c -o mytool1.o
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c -o mytool2.o
.PHONY:clean
clean:
rm -rf *.o // 删除中间文件
main.c 文件
#include "mytool1.h"
#include "mytool2.h"
int main(){
mytool1_print("hello");
mytool2_print("hello");
}
mytool1.c 文件
#include "mytool1.h"
#include <stdio.h>
void mytool1_print(char *print_str){
printf("this is mytool1 print %s",print_str);
printf("\n");
}
mytool1.h 文件
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
mytool2.c 文件
#include "mytool2.h"
#include <stdio.h>
void mytool2_print(char *print_str){
printf("this is mytool2 print %s\n",print_str);
}
mytool2.h 文件
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif