1.文件类型
头文件(Header Files):通常以.h作为扩展名,头文件包含了程序中所需要的各种函数、变量、宏定义等的声明,以及各种库函数的引用等
源文件(Source Files):通常以.c作为扩展名,源文件包含了程序的实现代码
库文件(Library Files):库文件是一些预编译好的对象文件的集合,包含了大量的函数和变量的实现代码
Makefile:Makefile是一个用于编译程序的脚本文件,可以自动化编译过程,避免手动编译过程中的错误和重复操作
文档(Documentation):通常以README.md的格式编写,文档包含了程序的说明、说明书、使用手册等,可以帮助用户更好地了解和使用程序
2.简单目录结构
project/ |—— include/ 存放头文件 | |—— header1.h | | —— header2.h |—— src/ 存放源文件 | |—— file1.c | |—— file2.c |—— lib/ 存放库文件 | |—— lib1.a | |—— lib2.a |—— Makefile 用于编译程序 |—— README.md 用于说明项目的信息和用法 |—— LICENSE 用于说明项目的版权和许可整信息
3.复杂目录结构
project/ |—— bin 存放产物的目录,产物可能是静态库、动态库、可执行程序 |—— build 存放Makefile的目录 | |—— Makefile 分为编译动态库、静态库,和编译可执行程序 |—— lib 编译过程中依赖的动态库、静态库 |—— docs 存放工程的设计文档、资料,便于后续维护人员理解整个工程 |—— include 存放头文件的目录 | |—— inner 一般是工程内部使用的头文件 | |—— xx1 代表存放需要和其他工程交互的头文件目录,一般采用映射方式保持同步 | |—— xx2 |—— patch 存放补丁文件的目录 |—— src 存放源文件的目录 |—— test 存放工程测试代码的目录 |—— tool 编译工程依赖的工具目录
4.其他
1) 库文件
库文件的提供方式:静态库/动态库 + 头文件说明。使用库的开发者需要根据头文件来使用库;
库文件的实质:将很多.o文件打包在一起
库文件作用:加快项目开发、保密、便于维护代码
2)静态库
命名:libxxx.a
可执行程序不依赖静态库,可执行程序的运行环境无需移植静态库
3)动态库
命名:libxxx.so
可执行程序依赖动态库,可执行程序运行的环境里必须存在对应的动态库
参考文章地址:
1. C 语言完整项目的结构说明_c语言项目结构-CSDN博客
2. 实际工作开发中C语言工程的目录结构分析_c语言目录结构-CSDN博客
3. 静态库和动态库介绍以及Makefile_makefile编译动态库和静态库-CSDN博客
标签:可执行程序,头文件,工程,项目,静态,C语言,编译,存放,目录 From: https://www.cnblogs.com/simonalwayson/p/18076819