linux 环境下头文件声明函数后使用makefile编译文件

来源:互联网 发布:cisco 端口镜像 编辑:程序博客网 时间:2024/05/29 14:31

刚开始使用linux环境编程时,遇到的一个难办问题,就是当时觉得在一个c文件里实现太多函数特别繁琐,并且后期因为函数实现部分篇幅太长,使得整个c很难看清楚思路,后来想着函数单独放在一个c文件里,没想到编译出了问题,查资料发现要用makefile,当时写了日志,把当时代码po上来做一个参考。

实例
此处例子涉及三个文件,两个c文件,一个头文件,分别为:fun.c a.c fun.h
1.fun.h是定义函数名的头文件

//fun.h#ifndef _FUN_H#define _FUN_H#include"fun.h"int fun1(int a,int b);void fun2();#endif

2.fun.c是实现fun.h里定义了的函数

//fun.c#include<stdio.h>#include"fun.h"int fun1(int a,int b){    return a+b;}void fun2(){    printf("fun2 is ok!\n");}

3.a.c是调用fun里的函数的主文件

//a.c#include<stdio.h>#include"fun.h"int main(){    int c;    int a=2,b=6;    c=fun1(a,b);    printf("a=%d b=%d\n a+b=%d\n",a,b,c);    fun2();    return 0;}

在同一个文件夹里创建好这三个文件后(我放在~/MINEcode/exm文件夹里)
为了方便一同编译,在这个文件夹里同时创建一个文件,名为makefile(注:文件名一定要是这个,make默认编译的就是这个名字的文件)

//makefileA:fun.o a.o     gcc -o A fun.o a.ofun.o:fun.c fun.h    gcc -c fun.ca.0:a.c fun.h    gcc -c a.cclean:    rm A fun.o a.o

保存后,在shell端执行以下命令

$ cd ~/MINEcode/exm$ make

(显示gcc相关编译语句)

$ ./A

(./A是因为我在makefile文件内就把编译后的命令命名为A,这个文件名可以随自己的makefile文件自己修改)

1 0
原创粉丝点击