linux多文件编译

发布于:2022-12-22 ⋅ 阅读:(565) ⋅ 点赞:(0)

多文件编译存在的价值:

在真实的工作环境中,我们不可能把所有代码全部写在一个文件中。因此,我们需要学习多文件编译。

多文件编译的框架

 在一个大的目录里,我们先创建include、bin、obj、src几个文件夹,同时,在这个大的目录和src文件夹、obj文件夹中分别创建makefile文件。

然后把编写好的main.c文件(主文件,包含所有代码)放到src文件夹中。之后,在src文件夹中创建func1.c 、func2.c、func3.c等.c 文件,这些新创建的.c文件用于存放main.c文件中调用到的子函数。

在将这一步执行完后,我们会得到一个只剩下头文件和int main()的main.c文件以及一堆子函数文件。这时,我们需要在include文件中建立一个main.h文件,再把main.c文件中的头文件以及一堆子函数文件的函数声明放进去。

 同时,在往src文件夹中的所有.c加上 #include "../include/main.h"的前缀,以保证在编译的时候会调用这些头文件。要注意的是,因为编译会将所有.c文件编译成一个可运行文件,彼此会发生大量的声明冲突,为避免这种情况,我们还需要给main.h函数加上一层框架,把头文件内容放#ifndef和#endif中。

在这里, 头文件main.h 要写成_MAIN_H_(两边空格和文件名内部.要替换成_)。

在所有准备工作完成后,就可以开始makefile文件的编写了。

为了便于理解,我们从src文件夹中的makefile文件开始编译。

这里,先介绍一下makefile文件的基本格式:

这句代码的意思是只把做good.c文件成obj文件,然后将这个obj文件命名为good.o文件。

这行代码的意思则是将所有生成的.o文件放到obj文件夹中。

到这里,src文件夹内的内容编写完毕,我们进入到obj文件夹中。

 这里,我们首先把所有.o文件进行最后一步处理,生成.out文件,然后将其重命名为MyStruct,最后将这个文件放在bin文件夹中。

现在,只剩下最后主目录中的makefile文件的编写了。

 编写完成后,我们来到主目录,输入make,直接运行主目录下的makefile文件,之后,便能在bin文件夹中看见我们生成的MyStruct文件(.out文件)。

输入./MyStruct,运行文件,程序运行:

至此,整个多文件编译过程结束。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到