c - github项目是如何编译&安排的,主要是Github上的C项目

标签 c github

我正在学习 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.

因为一个软件不仅仅由源代码组成。需要补充很多东西:

  • 文档(在 /mandocs 中);
  • 构建脚本(通常用于事实上的标准 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/

相关文章:

C语言: check if scanf user input is integer only

c - 在运行时重写一个已经编译好的函数

git - 在 pull 请求时重命名分支

Github |为什么当我推送到特定分支时没有记录在我的贡献中

包含笛卡尔坐标的 C 程序变量?

c - 缓冲区较小时的简单混响算法

windows - 即使文件已更改,Git 状态也是干净的

git - 如何避免将特定文件与 git-pull merge ?

c++ - 链表问题

Git 错误 : Unable to append to . git/logs/refs/remotes/origin/master: 权限被拒绝