如何在Github上编译和安排主要是C项目的github项目

codejam.tk

我正在学习C编程语言。为了清楚地了解用C编写的大型项目。我在Github上浏览了几个Trending C项目。这是项目用C写的:这里我不明白的一件事是为什么项目目录中有这么多文件夹:bin,conf,contrib,docs,images,m4,man,notes等。我唯一了解的文件夹是src文件夹,其中包含所有头文件和c文件。但是,仍然存在与源文件夹有关的另一个疑问。每个头文件都有一个同名的C文件。我可以编译主文件,但是main.c文件如何链接到其他C文件。我猜其他C文件具有所有功能定义,主文件正在调用它们。main.c调用了具有所有功能原型的头文件。现在,我对这些大型项目管理感到困惑。请帮助我理解。另外在哪里可以读到它,这样我就可以学到这些东西。

我实际上要问的是:如果我有5个文件

main.c,header.h,function1.c,function2.c,fuction3.c。我如何使用在这3个function1,2,3.c文件中编写的3个函数。

我想学习如何构建一个大项目,以及如何在不同的文件中进行管理以及如何在GIT上排列文件。即使我创建一个项目,我也会在同一.c文件中写入1000行,这完全是一团糟。我想学习如何管理项目的清晰度和安排。在哪里学习所有这些?

顺磁性羊角面包

我不明白的一件事是为什么项目目录中有这么多文件夹:bin,conf,contrib,docs,images,m4,man,notes等。

因为一个软件不仅包含源代码。需要很多补充材料:

  • 文件(在/man和中docs);
  • 构建脚本(通常用于conf和/或m4文件夹中的事实上的标准Unix配置工具“ autoconf”,“ automake”,“ M4”和“ make” );
  • 如果程序有一个(/images,则GUI使用的资源
  • 等等。

我可以编译主文件,但是main.c文件如何链接到其他C文件

使用一种称为链接器的软件许多编译器(包括流行的GCC和Clang工具链)默认情况下调用系统链接器(除非您告诉他们它们仅应编译而不是链接),这反过来会解析源文件之间的引用并创建最终的可执行文件。在此处阅读有关C编译过程的更多信息

我想学习如何构建一个大项目,以及如何在不同的文件中进行管理以及如何在GIT上排列文件。在哪里学习所有这些?

不幸的是,没有一个地方可以收集所有的智慧。您将需要大量使用Google,并阅读有关构建make系统(如Git等)和版本控制系统(如Git等)的文档,手册和教程

但是,我为您找到了一个相关的堆栈溢出问题,应该可以帮助您入门:如何将C程序拆分为多个文件?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在github上编译和运行项目?

如何在Github上更改项目的许可证?

如何在 Github 上找到某个项目的发布

如何在github上构建项目的deb包?

如何在Github上推送JavaScript项目?

如何在Github上发布Delphi项目?

如何在GitHub上找到存储库项目的创建日期?

如何在Github上对同一项目的多个仓库进行分组?

如何更改其他项目的Github?

如何在 android studio 中编辑 unity 导出的 gradle 项目(主要是 unity 的 .cs 文件/脚本)

如何在GitHub.com上组织Visual Studio项目?

如何在GitHub上为Java的开源项目做贡献

如何在GitHub中对小型项目进行组织和分类?

在github和npmjs.org上“退休”项目的当前最佳实践?

在Git / GitHub上使用“模板化”项目的良好实践

如何为Github上的项目做出贡献

GitHub上的CMake / C ++项目组织

如何在github中发布Java项目?

如何在可可中下载github项目的所有子模块?

如何在 GitHub 中自动化 Maven 项目的版本控制?

GitHub工作流程-如何确保项目的最新状态和密码的安全性?

编译GitHub项目在Mac上使用-static选项运行gcc并失败,我该如何解决?

如何删除GitHub项目?

如何从github制作项目

如何从API捕获项目的最新GitHub版本?

如何恢复到github项目的在线分支?

C ++-获取GitHub项目的最新版本

如何在Visual Studio 2017中创建项目的情况下编译C ++文件?

如何在没有项目的情况下编译C#文件?