首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

makefile错误:“make:*没有创建目标…的规则”

这个错误是由于Makefile文件中缺少了对应目标的规则导致的。Makefile是一个用于自动化构建的工具,它根据文件的依赖关系来确定需要执行的命令。

当你运行make命令时,它会读取Makefile文件并根据其中的规则来执行相应的命令。如果Makefile中没有定义某个目标的规则,那么make命令就会报错并显示类似于"make: *** No rule to make target..."的错误信息。

要解决这个错误,你需要检查Makefile文件中是否存在对应目标的规则。一个基本的Makefile规则通常包括目标、依赖和命令三个部分。目标是指需要生成的文件或执行的操作,依赖是指生成目标所需要的文件或操作,命令是指生成目标的具体操作步骤。

以下是一个示例的Makefile文件:

代码语言:txt
复制
target: dependency
    command

在这个示例中,"target"是需要生成的目标,"dependency"是生成目标所需要的文件或操作,"command"是生成目标的具体操作步骤。

如果你遇到了"make: *** No rule to make target..."的错误,可以按照以下步骤进行排查和解决:

  1. 检查Makefile文件中是否存在对应目标的规则,确保目标、依赖和命令三个部分都正确设置。
  2. 确保Makefile文件中的目标名称与你运行make命令时指定的目标名称一致。
  3. 检查依赖文件或操作是否存在,如果不存在则需要先生成或执行相应的依赖。
  4. 确保Makefile文件中的命令正确无误,可以尝试手动执行这些命令来验证其正确性。
  5. 如果以上步骤都没有解决问题,可以尝试使用调试工具(如make的-v选项)来查看详细的错误信息,以便更好地定位和解决问题。

关于makefile的更多信息和用法,你可以参考腾讯云的产品文档:Makefile

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Makefile 使用总结

还得要注意是,这些变量只使用在规则命令中,而且一般都是"显式规则"和"静态模式规则"(参见前面"书写规则"一章)。其在隐含规则中并没有意义。 1....中可以引用其他Makefile) 读入被include其他Makefile 初始化文件中变量 推导隐晦规则, 并分析所有规则 为所有的目标文件创建依赖关系链 根据依赖关系, 决定哪些目标要重新生成...echo "错误之后命令" <-- 这条命令不会被执行 # bash中执行 make $ make echo "没有前缀" <-- 命令本身显示出来 没有前缀...) echo "错误之后命令" <-- 出错之后命令也会显示 错误之后命令 <-- 出错之后命令也会执行 2.4 伪目标目标并不是一个"目标(target...退出码有以下3种: 0 :: 表示成功执行 1 :: 表示make命令出现了错误 2 :: 使用了 "-q" 选项, 并且make使得一些目标不需要更新 2.8 指定 Makefile, 指定特定目标

3.5K30

makefile从入门到放弃——博主吐血整理笔记

文章目录 make简介 makefile基本结构 makefile基本使用实例 makefile变量 make使用 makefile隐含规则 makefileVPATH makefile嵌套...makefile基本结构 makefilemake读入唯一配置文件 由make工具创建目标体(target),通常是目标文件或可执行文件 要创建目标体所依赖文件(dependency_file...) 创建每个目标体时需要运行命令(command) 注意:命令前必须是一个“TAB键”,否则编译错误为:*** missing separator....检查没有语法错误以后可以编写makefile文件。...makefile文件中特殊变量VPATH就是完成这么一个功能,如果没有指明这个变量,make只会在当前目录中去寻找依赖文件和目标文件。

1.5K20

makefile

如果只希望利用gcc命令来生成test.o目标文件,这时,就可以利用如下makefile来定义test.o创建规则: #This makefile just is a example....2、Makefile基本内容 Makefile一般包括包含:显式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)显式规则:显式规则说明如何生成一个或多个目标文件。...2.2隐含规则 GNU make 包含有一些内置或隐含规则,这些规则定义了如何从不同依赖文件建立特定类型目标。...如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误。...它会继续载入其它文件,一旦完成makefile读取,make会再重试这些没有找到,或是不能读取文件,如果还是不行,make才会出现一条致命信息。

1.9K00

Linux MakeMakefile)由浅入深学习与示例剖析

如果您写程序没有用到make工具,则说明您写程序仅仅是个人练习小程序,称不上有实用价值程序,因此我们必须学习、掌握并灵活运用它。...其次,需要注意Linux makefile(Makefile)文件编写规范和方法: 1、需要由make工具创建目标体target,即通常目标文件或可执行文件 2、声明并给出创建目标体所依赖文件(...生成规则目标所需要文件名列表,通常是一个目标依赖于一个或多个文件。 command:规则命令。make程序所执行动作,可以为shell命令或者在shell下执行程序。...一个目标可以没有依赖而只有动作,即只有命令,如clean。此目标只有命令,没有依赖,主要作用是用来删除make过程中产生中间文件(*.o),做收尾清理工作。...2、make: main 是最新错误提示,如下图 ? 这是因为该文件目录中,已经存在了目标可执行文件 main ,请见下图 ?

1.8K20

命令行上数据科学第二版:六、项目管理与`make`

一个目标就像一个任务。它通常是您想要创建文件名称,但也可以比它更通用。下面这条线,seq 7,被称为规则 。把一个规则想象成一个食谱;一个或多个指定如何构建目标的命令。...在这种情况下,我们实际上没有构建任何东西,因为我们没有创建任何新文件。make将愉快地再次构建我们目标numbers,因为它没有找到一个叫做*文件编号 *。在下一节中,我将深入探讨这一点。...它不检查规则是否实际创建了同名文件。如果我们要写入一个名为nummers文件,它在荷兰语中是“数字”意思,而目标仍然名为numbers,那么make将总是构建这个目标。...例如,由于这个原因,现在一旦出现错误目标top10规则管道就会停止。 我们定义一个自定义变量叫做URL。...目标all作为第一个目标出现在Makefile中,这意味着如果我们运行make,这个目标将被构建。 目标data创建目录data。之前我说过make都是关于文件。嗯,也是关于目录

66610

Linux 下make命令与Makefile

make退出码 make命令执行后有三个退出码: 0 表示成功执行。 1 如果make运行时出现任何错误,其返回1。...要达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到make hello_kitty”形式)任何在makefile目标都可以被指定成终极目标,甚至没有被我们明确写出来目标也可以成为...all:这个伪目标是所有目标目标,其功能一般是编译所有的目标。 clean:这个伪目标功能是删除所有被make创建文件。...仅仅是检查所指定目标是否需要更新。如果是0则说明要更新,如果是2则说明有错误发生。 -r, –no-builtin-rules 禁止make使用任何隐含规则。...make隐含规则 “隐含规则”也就是一种惯例,make会按照这种“惯例”来运行,哪怕我们Makefile没有书写这样规则

10.1K20

【Linux系统编程】Linux项目自动化构建工具——makeMakefile

使用makemakefile主要步骤如下: 创建一个makefile文件,并为各个目标指定构建规则。 在makefile中定义源文件之间依赖关系以及对应编译命令。...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么make就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make根本不理。...但其实也有特殊情况: 在makefile中,依赖文件列表可以为空,表示目标文件没有任何依赖。...这是因为: 在终端中运行make命令时,我们可以指定目标。如果没指定,默认情况下,它只会执行makefile文件中第一个目标规则。...还是以这个为例 大家看 我两次执行make(不指定默认是第一个即make myfile),有什么不同。 第一次make执行了makefile文件中第一个目标规则,并生成了对应文件。

16910

跟我一起写Makefile:MakeFile介绍

我们规则是: 1)如果这个工程没有编译过,那么我们所有c文件都要编译并被链接。 2)如果这个工程某几个c文件被修改,那么我们只编译被修改c文件,并链接目标程序。...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么make就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make根本不理。...如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误。...只是,它和include不同是,从这个环境变量中引入Makefile目标”不会起作用,如果环境变量中定义文件发现错误make也会不理。...推导隐晦规则,并分析所有规则。 为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。 1-5步为第一个阶段,6-7为第二个阶段。

97920

可移植 Makefile 教程

虽然每个实现都实现了与 GNU Make 完全相同一些扩展,但是它会捕获一些常见错误。 什么是 Makefile?...只有一个意外:在 Makefile 中,第一个非特殊目标会被认为是 默认目标(default target)。当调用 make 但是没有没有指定一个目标时,这个默认目标就会被自动选择。...规则也需要指定 Shell 命令,这些 Shell 命令会被用于从先决条件中生成目标。 如果你打算创建示例中源文件,并调用 make, 你会发现它实际上已经知道了它该如何构建目标文件。...它会告诉 make 在遇到第一个错误时不要停下,而是继续更新不受该错误影响目标。...更多实际目标,可以作为必要条件加入到默认目标中。这个 Makefile 使用者也可以使用 make all 来构建整个项目。 另一个常见目标是 clean,它会移除所有 make 创建文件。

1.3K10

Make

###二、Make一般使用: 1、Makefile基本构成: Makefile规则构成,一条规则生成一个或多个目标文件,其格式如下: 目标文件列表 分隔符 依赖文件列表 [;命令] //[]中内容可选...2、Makefile文件构成: 一个完整makefile文件由5个部分构成:显式规则、隐含规则、变量、文件指示和注释。 显式规则:一条显式规则指名了目标文件、目标文件依赖关系、命令。...有些规则没有命令,只是说明文件之间依赖关系。 隐含规则:由make根据目标文件而自动推导出规则。...特殊目标: .PHONY:伪目标,如上 .IGNORE:对于该目标依赖文件,生成时如遇到错误则可跳过错误继续执行,不会中断make。...-q:不执行任何命令,返回0表示没有重建目标,返回1表示存在重建目标,返回2表示有错误发生。 -r:忽略隐含规则。 -R:取消预定义变量。同时打开-r选项。 -s:执行但不显示所执行命令。

1.9K100

linux下,Makefile是啥??

如果main所依赖.o文件也不存在,那么make会在当前文件中找目标为 .o文件 依赖性,如果找到则再根据那一个规则生成.o文件。...在执行过程中,如果出现错误,比如被依赖文件找不到,那么make就会直接退出,并报错,而对于所 定义命令错误,或是编译不成功,make根本不理。make只管文件依赖性。...Makefile包含什么内容 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 显式规则。显式规则说明了如何生成一个或多个目标文件。...make工作方式 make执行步骤如下: 读入所有的Makefile。 读入被include其它Makefile。 初始化文件中变量。 推导隐晦规则,并分析所有规则。...为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。 Makefile分为多个章节进行书写,有些概念描述参考与某些资料。

1.1K20

技术栈系列基础篇2-Makefile

Makefile带来好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大提高了软件开发效率Makefile里有什么Makefile里包含了:显示规则、隐晦规则、...显式规则说明了,如何生成一个或多目标文件。这是由Makefile书写者明显指出,要生成文件,文件依赖文件,生成命令。隐晦规则。...由于我们make有自动推导功能,所以隐晦规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持。变量定义。...变量名称可以由大小写字母、阿拉伯数字和下划线构成。等号左右空白符没有明确要求,因为在执行 make 时候多余空白符会被自动删除。...clean这个伪目标功能是删除所有被make创建文件。install这个伪目标功能是删除所有被make创建文件。print这个伪目标的功能是例出改变过源文件。

55730

【Linux笔记】make工程管理工具(二)

除此之外,这个文件中, #符号后面是注释, clean 是一个特殊目标,它没有依赖,称为伪目标规则Makefile文件中最基本、也是最核心部分。Makefile中还有其他内容。...如果Makefile 文件里面没有显式给出文件依赖关系时候,make 就会根据文件扩展名找到相应隐含规则,然后按照隐含规则来更新目标。...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么 make 就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make 根本不理。...像clean 这种伪目标没有被第一个目标文件直接或间接关联,那么它后面所定义命令将不会被自动执行。...以上就是本次笔记分享,主要介绍make工具、Makefile文件大概有哪些内容、make是如何工作。如有错误,欢迎指出!

1.7K10

make命令和makefile文件

makefile文件由一组依赖关系和规则构成,每个依赖关系由一个目标和一组该目标所依赖源文件组成,而规则描述了如何通过这些依赖文件创建目标,一般来说,目标是一个单独可执行文件。...1. make命令选项和参数   make程序本身有许多选项,其中最常用三个选项如下所示: (1)-k:让make命令在发现错误时仍然继续执行 (2)-n:让make命令输出将要执行操作步骤,而不真正执行这些操作...myapp.1   建议约定:在自己makefile文件中将第一个目标定为all,然后再列出其它重属目标 1.2 规则   makefile文件中一个非常奇怪而又令人遗憾语法现象:空格和制表符是有区别的...,规则所在行必须以制表符开头,用空格是不行,如果makefile文件中某行以空格结尾,也可能导致make命令执行失败。...  -   告诉make命令忽略所有的错误   @   告诉make在执行命令前不要将该命令显示在标准输出上@echo   $(@D) 目标文件目录名部分   $(@F) 目标文件文件名部分

2.5K40

实战Makefile前,该知道那些知识?

makemake clean 生成目标文件规则make命令): 执行make命令则会根据当前目录Makefile文件定义规则生成对应目标文件。...清空目标文件规则make clean命令): 每个Makefile中都应该写一个清空目标文件( .o 和目标文件等)规则,这不仅便于重编译,也很 利于保持文件清洁。...:增加伪目标:.PHONY:clean: .PHONY:clean clean: rm $(obj) *.o 注意: clean规则不要放在文件 开头,不然,会变成make默认目标,一般...命令参数 -s 或 --silent 或 --quiet 则是全面禁止命令显示 命令执行规则: 当依赖目标新于目标时,make会一条一条执行其后命令。...如果一个规则某个命令出错了(命令退出码 非零),那么make就会终止执行当前规则,这将有可能终止所有规则执行。 有时命令出错并不表示错误

43920

跟我一起写Makefile

我们规则是: 1)如果这个工程没有编译过,那么我们所有c文件都要编译并被链接。 2)如果这个工程某几个c文件被修改,那么我们只编译被修改c文件,并链接目标程序。...在找寻的过程中,如果出现错误,比如最后被依赖文件找不到,那么make就会直接退出,并报错,而对于所定义命令错误,或是编译不成功,make根本不理。...如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误。...只是,它和include不同是,从这个环境变量中引入Makefile目标”不会起作用,如果环境变量中定义文件发现错误make也会不理。...推导隐晦规则,并分析所有规则。 为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。 1-5步为第一个阶段,6-7为第二个阶段。

1K70
领券