使用Makefile进行简单编译?

科林·福斯诺特

我在掌握Makefile的概念时遇到了一些麻烦。我正在用C编写一个项目,我有两个.c文件,需要一起编译才能运行该程序。我和其他人一起讨论了一些概念,但是仍然难以掌握Makefile的概念。这就是我所拥有的。

生成文件:

hs.c:
        gcc -o hs hs_util.c hs.c

hs.c依赖于hs_util.c的功能来完成任务。我知道这是因为包含了hs_util的头文件...

在hs.c中:

#include "hs_util.h"
#include "hs_config.h"

在hs_util.c中

#include "hs_config.h"
#include "hs_util.h"

当我运行“ make”命令时,它说“ make:'hs.c'是最新的。” 很好,但是没有创建hs文件。我究竟做错了什么?

伊坦·赖斯纳

你告诉它来构建hs.c没有hs因此它尝试了,但是它存在,并且您没有告诉它其他任何文件来迫使它认为该文件已过时(这很好,因为您不希望这样)。

你要:

hs:
        gcc -o hs hs_util.c hs.c

但这还不够。那将只构建一次,然后停止(您需要先删除,hs然后才能再次构建)。

您需要教授make哪些输入文件可以进入目标(hs)。

hs: hs_util.c hs.c
        gcc -o hs hs_util.c hs.c

完成后,您可以使用自动变量来避免重复。

hs: hs_util.c hs.c
        gcc -o $@ $^

完成此操作后,您便可以真正利用make内置规则了

hs: hs_util.o hs.o

如果您还想告诉make它需要.o.h文件更改重建文件,则可以添加它。

hs.o hs_util.o: hs_util.h hs_config.h

请记住,make规则的一般形式为(example语法):

output-file: input-file
    commands to generate output-file from input-file

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自动变量进行Makefile编译

来自分类Dev

使用makefile进行编译时链接器错误

来自分类Dev

避免使用makefile进行不必要的重新编译

来自分类Dev

在我的工作目录中使用glfw -3.2.1,如何使用makefile对其进行编译

来自分类Dev

使用Makefile编译目标C

来自分类Dev

Make:仅当使用makefile进行编译时,“系统找不到指定的路径”吗?

来自分类Dev

程序不会使用makefile进行编译,但是如果没有它,则可以正常工作

来自分类Dev

如何在不删除.o文件的情况下使用makefile进行编译?

来自分类Dev

使用makefile与javac进行编译时出现“错误:找不到符号”

来自分类Dev

是否可以使用make.inc和Makefile进行编译

来自分类Dev

在makefile中进行更改后,C makefile无法编译

来自分类Dev

C / C ++编译。在项目的简单Makefile上遇到麻烦

来自分类Dev

使用CodeDom进行编译

来自分类Dev

使用CodeDom进行编译

来自分类Dev

使用makefile进行编译时,如何在不使用命令“ make clean”的情况下清除目标文件?

来自分类Dev

如何使用Makefile编译32位程序

来自分类Dev

在Linux上使用Makefile编译独立的ASIO

来自分类Dev

使用 Makefile 高效编译多个测试文件

来自分类Dev

Makefile 使用 Python 编译单个文件

来自分类Dev

使用scalaz进行简单聚合?

来自分类Dev

使用RegEx进行简单操作

来自分类Dev

使用jQuery进行简单计算

来自分类Dev

使用JavaScript进行简单计算

来自分类Dev

在makefile中设置共享库的路径以进行编译

来自分类Dev

使用webpack进行更少的编译

来自分类Dev

如何使用libmosquitto进行编译

来自分类Dev

使用gcc与system()进行编译

来自分类Dev

使用constexpr进行错误编译

来自分类Dev

如何使用clang ++进行编译?

Related 相关文章

热门标签

归档