👷项目是怎样构建的
在正式开始写代码之前,我们先了解一下项目的构建方式。
C程序是怎样生成的
// hello.c
#include <stdio.h>
int main() {
printf("Hello, WinterCode!\n");
return 0;
}C程序,或者说C家族程序从源代码到可执行程序的过程可以用下图表示:

经过了编译预处理、编译、汇编、链接四个阶段。
在linux下使用gcc构建c程序的过程(以hello.c为例)可以用如下命令表示:
当然,如果是单模块的话也可以合并为一个命令:
之后,我们只需要运行二进制文件hello就可以运行我们的程序了。
C项目是怎样搭建的
我们以WhaleMarket的Makefile为例来看一下C工程是如何搭建的。
其中我们关注如下内容:
现阶段你或许不需要详细了解Makefile的全部含义,当然,如果你感兴趣,可以查看这个链接: https://blog.csdn.net/weixin_38391755/article/details/80380786
值得注意一下的是,在这个Makefile中,我们约定了所有的头文件放在include文件夹里,所有的源文件放在src文件夹里,所有项目构建过程中生成的的目标文件放在对应源文件的统一目录下。
这个约定是通过下面三条定义来实现的:
什么是模块
一个模块通常是由一个头文件和一个或者多个源文件构成的。
比如说下面的hello.h和hello.c就构成了一个模块。
我们可以在其他模块里面通过包含该模块的头文件来使用该模块中的内容。
那这个简单的双模块项目的编译执行过程可以用如下命令表示:
结合上述简单双模块程序的构建,或许你现在可以看懂一些些我们的Makefile了。
至此,你对这个项目的构建过程应该已经大致掌握了,下面我们可以运行一下框架代码,测试自己的环境。
最后更新于
这有帮助吗?