如何使用标头编译并创建一个Makefile - C.

时间:2017-10-15 16:00:33

标签: c gcc makefile header

我正在尝试编译并制作下一个结构的Makefile:

|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c

在那里编写的代码已在IDE上测试过,所以我知道它有效。我只需要编译它但是idk如何执行2 .c文件和.h文件。另外,我需要制作一个makefile。怎么样?

谢谢。

1 个答案:

答案 0 :(得分:1)

Makefile只是一些文本文件(其中 tab 字符至少在启动命令行时重要)。使用一些source code editor来创建或改进它;我更喜欢GNU emacs所以推荐它,但你可以使用其他编辑器(例如vimgedit等等),这是一个品味问题。顺便说一句,别忘了使用一些版本控制系统(我推荐git)。

在创建Makefile之前,请花一些时间阅读documentation of make。请注意众多内置规则(您可以通过运行make -p获得)并利用它们。

  

如何执行.c文件和.h文件。

您没有执行 .c个文件,但是将它们提供给您的C compiler。我建议使用GCC(或者Clang/LLVM)作为C编译器。

你可能应该将CC make变量(它给出默认的C编译器)设置为gcc,并设置CFLAGS变量(它给出了默认的编译器标志)。

请阅读有关Invoking GCC的文档。您肯定希望编译所有警告和调试信息。

因此,我建议您在Makefile

中添加以下两行
 CC= gcc
 CFLAGS= -Wall -Wextra -g

当然,您需要Makefile中的其他行。我留给你阅读更多和实验。 Thisthat应该是鼓舞人心的。

您可能希望在Makefile中提及对头文件的依赖性。

所以我请你你的 Makefile 。将其视为source code,因此备份和版本控制它。

BTW,对于像你这样的小程序,我不认为拥有src/include/目录是有用的,我相信引入build/目录只会增加不必要的复杂。 YMMV。

  

在那里编写的代码已经在IDE上测试过,所以我知道它有效。

这可能是一种错觉。有时你可能会遇到运气不好的undefined behavior只是“出现”才能运作但却是一个错误。请参阅this answer并按照我在那里提供的链接。

使用make构建了许多free software个项目;看看github和其他地方找一些。有时Makefile会自行生成$('#element').fadeToogle(500); (例如,使用cmakeqmakeautoconf),但在您的简单情况下这不值得。

PS。不要指望StackOverflow做你的功课。