首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C制作文件,如何制作一个会编译四个源文件的文件?

C制作文件,如何制作一个会编译四个源文件的文件?
EN

Stack Overflow用户
提问于 2012-02-01 03:39:07
回答 2查看 203关注 0票数 3

这是我的作业。我正在寻找关于如何制作一个编译三个源文件的"makefile“的帮助。其中将被命名为“timestatle.c tablein.c tableout.c timestatle.h”。这是四个源文件。我已经创建了一个makefile来完成这个任务,我认为这是正确的,但是我不知道如何测试它,看看它是否会编译?以下是我的makefile的内容:

代码语言:javascript
复制
timestable.exe: timestable.c tablein.c tableout.c timestable.h
    cl timestable.c tablein.c tableout.c timestable.h 

这是正确的吗?这个makefile必须使用Visual命令构建一个名为timestable.exe的程序,并提供干净的功能。当老师提到“清洁”功能时,我不明白老师在告诉我什么。我不确定这个makefile是否真的可以创建这个文件,因为我不知道如何运行它。

另外,如果你们不介意给我一个链接,或者告诉我一些更多关于基于windows系统的makefile命令的信息。我希望在makefile中创建和“额外的特性”,因为这样做会给我更好的分数,我不知道我还能做什么。

提前谢谢。

大编辑:因此,在播放了一些之后,我发现如果我将makefile.txt文件更改为makefile.bat并打开visual提示符,进入正确的目录并键入(我知道我不必运行cmd才能运行.bat文件):

代码语言:javascript
复制
 makefile.bat 

它将尝试编译所有文件。问题是,它不适用于".h“文件,具体而言是时间稳定的.h文件。此外,"timestable.exe“命令也不起作用。知道该怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-01 03:46:46

(顺便说一句,如果您手动运行cl timestable.c tablein.c tableout.c timestable.h,会发生什么情况?)

通常,您希望编写Makefile来将.c文件编译为.obj文件,使用知道如何将单个.c文件编译为.obj文件的模式规则,然后使用另一条知道如何将所有.obj文件链接到单个可执行对象的规则。(一个重要的好处是,这只允许重建已经改变的部分。到目前为止,您的Makefile需要随时重新编译所有输入文件。)

当您有这么多.obj文件时,您可能需要一个make clean来删除可以从源中重建的所有对象文件和可执行文件。这可能就像声明clean是一个假目标一样简单,然后删除所有可以重建的文件。

注意,按惯例,Makefiles名为MakefilemakefileGNUmakefile。(GNU make实际上以与此列表相反的顺序搜索文件,但Makefile是我唯一喜欢的名称。)如果使用这些名称之一,则只需运行make foo来运行foo目标。如果您为Makefile选择了不同的名称,那么还需要使用-f filename命令行选项来选择另一个文件,这是很烦人的。有时是必要的。

票数 2
EN

Stack Overflow用户

发布于 2012-02-01 13:28:10

当然,你的老师/学校提供了一些课程笔记,其中解释了make/nmake的基本知识,如果他们希望你在作业中使用它;或者至少提供一些指向在线材料的提示?

您似乎对makefile到底是什么以及如何使用它感到困惑。您并不像批处理脚本那样直接从命令行运行它,但是您需要一个程序(如果使用Visual,名为makenmake );makefile是一种由该程序读取的输入脚本。然后,该程序使用makefile中的信息来确定它需要运行哪些命令来更新主目标。

您应该能够找到一些教程,它们比我在这里所能做的更好地描述了make的基础知识。在Google上快速搜索make tutorial,找到了一个链接:http://www.eng.hawaii.edu/Tutor/Make/。我浏览了一下,这似乎是一个很好的介绍(它使用图片和简短的部分,所以它一定是好的,对吧?;)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9090418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档