我正在学习 C 编程语言。为了清楚地了解用 C 编写的大型项目。我在 Github 上浏览了几个 Trending C 项目。这是用 C 编写的项目:Here .我不明白的一件事是为什么项目目录中有这么多文件夹:bin,conf,contrib,docs,images,m4,man,notes等。我唯一理解的文件夹是src文件夹,其中包含所有头文件和c文件。但是还有一个疑问与源文件夹有关。每个头文件都有一个同名的 C 文件。我可以编译主文件,但 main.c 文件如何链接到其他 C 文件。我猜其他 C 文件具有所有函数定义和主文件正在调用它们。 main.c 调用了包含所有函数原型(prototype)的头文件。我现在对这些大项目管理有点困惑。请帮助我理解。还有在哪里可以阅读它,以便我可以学习这些东西。
其实我想问的是:如果我有5个文件
main.c、header.h、function1.c、function2.c、fuction3.c。我如何使用这 3 个函数 1、2、3.c 文件中编写的 3 个函数。
我想学习如何构建一个大项目并在不同的文件中管理它,以及文件在 GIT 上的排列方式。即使我创建了一个项目,我也会在同一个 .c 文件中写 1000 行,这完全是一团糟。我想学习如何管理项目的清晰度和安排。在哪里学习所有这些?
最佳答案
One thing i don't understand is why there are so many folder in the project directory: bin, conf, contrib, docs, images, m4, man, notes, etc.
因为一个软件不仅仅由源代码组成。需要补充很多东西:
- 文档(在
/man
和docs
中); - 构建脚本(通常用于事实上的标准 Unix 配置工具“autoconf”、“automake”、“M4”和“make”,位于
conf
和/或m4
文件夹); - 如果程序有 GUI 使用的资源 (
/images
); - 等等
I can compile main file but how are main.c file linked to other C files
使用一个称为链接器的软件。许多编译器(包括流行的 GCC 和 Clang 工具链)默认调用系统链接器(除非您告诉它们只编译但不编译) link) 依次解析源文件之间的引用并创建最终的可执行文件。阅读有关 C 编译过程的更多信息 here .
I want to learn how to built a big project and manage that in different files and the way files are arranged on GIT. Where to learn all this?
不幸的是,没有一个地方可以让您收集所有的智慧。您将需要经常使用 Google,阅读构建系统(如 make
)和版本控制系统(如 Git 等)的文档、手册和教程。
但是,我为您找到了一个相关的 Stack Overflow 问题,应该可以帮助您入门:How to split a C program into multiple files?
关于c - github项目是如何编译&安排的,主要是Github上的C项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26781367/