失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 多个C语言代码文件编译示例

多个C语言代码文件编译示例

时间:2023-11-05 15:57:44

相关推荐

多个C语言代码文件编译示例

多个C语言代码文件编译示例

多个C语言文件的编译在实际项目中会遇到,是模块化编程的重要体现,是必须要学习的。我们先学习一个简单的例子。

我们要实现一个加法和减法操作,将加法和减法看成两个独立的功能,头文件和源文件是分离的,方便给其他开发人员使用。这里需要注意的是,在源文件中提供的可以被外部调用的函数,最好在头文件中声明,避免使用extern关键字。

(1)add.h

#ifndef ADD_H#define ADD_Hint add(int, int);#endif

(2)sub.h

#ifndef ADD_H#define ADD_Hint sub(int, int);#endif

(3)add.c

#include "add.h"int add(int a, int b){return a+b;}

(4)sub.c

#include "sub.h"int sub(int a, int b){return a-b;}

(5)main.c

#include "add.h"#include "sub.h"int main(){int a = 3;int b = 4;printf("a=%d,b=%d,a+b=%d,a-b=%d\n", a, b, add(a, b), sub(a, b));return 0;}

因为所有头文件都在当前目录,所以不需要指定,直接编译如下:

gcc -o test add.c sub.c main.c

写一个Makefile文件如下:

objects = add.o sub.o main.oall:$(objects)$(CC) -o test $(objects)$(objects): %.o : %.c$(CC) -c $(CFLAGS) $< -o $@.PHONY:cleanclean:rm -rf *.o

编译命令:

make all

清空编译中间文件:

make clean

Makefile文件的好处是:项目文件很多的时候很方便。

再复杂的Makefile文件也是从简单文件开始构建的,不要害怕,继续学,继续用。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,

分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,

fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,

TCP/IP,协程,DPDK等技术内容,点击立即学习:

服务器课程:C++服务器

如果觉得《多个C语言代码文件编译示例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。