2017-10-15 87 views
0

我试图编译,使下一个结构的一个Makefile:如何用头编译和创建一个Makefile - Visual C

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

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

谢谢。

+1

[阅读本文](https://www.gnu.org/software/make/manual/make.html)可能会帮助您开始。 – alk

+1

StackOverflow不是一个做我的作业服务,但你应该用它来学习的东西,并提问一些[MCVE] –

+0

先尝试一些更简单,比如没有makefile的HelloWorld。 – Beta

回答

1

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

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

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

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

你可能应该设置CC使变量(它给出了默认的C编译器)为gccCFLAGS变量(它给出了默认的编译器标志)。

因此请阅读关于Invoking GCC的文档。您当然想要编译所有警告和调试信息。

因此,我建议有以下两行的Makefile

CC= gcc 
CFLAGS= -Wall -Wextra -g 

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

您可能想在您的Makefile中提及对头文件的依赖关系。

因此,我给你留下你的Makefile。考虑它为source code,所以备份和版本控制它仔细。

顺便说一句,对于像你这样的小程序,我不认为有src/include/目录是有用的,我相信介绍一个build/目录只是增加了不必要的复杂性。因人而异。

这里写的代码已经在IDE上测试过了,所以我知道它的工作原理。

这可能是一种幻觉。有时你可能会碰到一些undefined behavior,它们只是“出现”工作,但却是一个错误。请参阅this answer并按照我给出的链接。

有很多free software项目与make建成;看看github和其他地方找一些。有时候,Makefile本身就会生成(例如,使用cmake,qmakeautoconf),但在您的简单情况下这并不值得。

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