说明:执行的环境ubuntu 12.04 + gcc
1.编写源代码(5个文件)
1)名称为main.c,代码如下:
#include "my1.h"
#include "my2.h"
int main()
{
my1_print("hello my1!");
my2_print("hello my2!");
return 0;
}
2)名称为my1.h,代码如下:
#ifndef _MY_1_H
#define _MY_1_H
void my1_print(char *print_str);
#endif
3)名称为my2.h,代码如下:
#ifndef _MY_2_H
#define _MY_2_H
void my2_print(char *print);
#endif
4)名称为my1.c,代码如下:
#include "my1.h"
#include <stdio.h>
void my1_print(char *print_str)
{
printf("This is my2 print %s\n", print_str);
}
5)名称为my2.c,代码如下:
#include "my2.h"
#include <stdio.h>
void my2_print(char *print_str)
{
printf("This is my2 print %s\n", print_str);
}
2.编写makefile文件,名称为makefile(或者Makefile),内容如下:
main:main.o my1.o my2.o
gcc -o main main.o my1.o my2.o
main.o:main.c my1.h my2.h
gcc -c main.c
my1.o:my1.c my1.h
gcc -c my1.c
my2.o:my2.c my2.h
gcc -c my2.c
clean:
rm -f *.o main
3.执行makefile文件。
3.1执行命令如下:
make
3.2输出结果如下:
gcc -c main.c
gcc -c my1.c
gcc -c my2.c
gcc -o main main.o my1.o my2.o
4.最后查看和执行生成文件main。
file ./main
输出的结果为:
./main: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x2c63c471957d709e4d5a19c75c7eda60cfb2f3e2, not stripped
./main
输出的结果为:
This is my2 print hello my1!
This is my2 print hello my2!