我试图编译,使下一个结构的一个Makefile:如何用头编译和创建一个Makefile - Visual C
|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c
编写的代码已经在IDE测试,所以我知道有用。我只需要编译它,但idk如何执行2 .c文件和.h文件。另外,我需要制作一个makefile。怎么样?
谢谢。
我试图编译,使下一个结构的一个Makefile:如何用头编译和创建一个Makefile - Visual C
|-- build
|-- include
| \-- functions.h
\-- src
|-- functions.c
\-- main.c
编写的代码已经在IDE测试,所以我知道有用。我只需要编译它,但idk如何执行2 .c文件和.h文件。另外,我需要制作一个makefile。怎么样?
谢谢。
甲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编译器)为gcc
和CFLAGS
变量(它给出了默认的编译器标志)。
因此请阅读关于Invoking GCC的文档。您当然想要编译所有警告和调试信息。
因此,我建议有以下两行的Makefile
CC= gcc
CFLAGS= -Wall -Wextra -g
当然,你需要在你Makefile
其他线路。我留给你阅读更多和实验。 This和that应该是鼓舞人心的。
您可能想在您的Makefile
中提及对头文件的依赖关系。
因此,我给你留下写你的Makefile
。考虑它为source code,所以备份和版本控制它仔细。
顺便说一句,对于像你这样的小程序,我不认为有src/
和include/
目录是有用的,我相信介绍一个build/
目录只是增加了不必要的复杂性。因人而异。
这里写的代码已经在IDE上测试过了,所以我知道它的工作原理。
这可能是一种幻觉。有时你可能会碰到一些undefined behavior,它们只是“出现”工作,但却是一个错误。请参阅this answer并按照我给出的链接。
有很多free software项目与make
建成;看看github和其他地方找一些。有时候,Makefile
本身就会生成(例如,使用cmake,qmake或autoconf),但在您的简单情况下这并不值得。
PS。不要指望StackOverflow做你的功课。
[阅读本文](https://www.gnu.org/software/make/manual/make.html)可能会帮助您开始。 – alk
StackOverflow不是一个做我的作业服务,但你应该用它来学习的东西,并提问一些[MCVE] –
先尝试一些更简单,比如没有makefile的HelloWorld。 – Beta