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

Makefile:没有要创建目标的规则。但在我看来,它应该被覆盖

Makefile是一种用于自动化构建和管理软件项目的工具。它通常用于编译源代码、链接库文件、生成可执行文件等任务。在Makefile中,规则是指定义了一系列操作步骤的指令,用于生成目标文件。

针对问题中提到的情况,"没有要创建目标的规则"意味着Makefile中没有定义任何规则来生成目标文件。这可能是由于以下几种情况导致的:

  1. Makefile文件中确实没有定义任何规则来生成目标文件。在这种情况下,需要根据项目需求添加相应的规则。
  2. Makefile文件中存在规则,但是目标文件的依赖关系或者命令行操作有误,导致无法正确生成目标文件。需要检查Makefile文件中的规则定义,确保依赖关系和命令行操作正确无误。

针对Makefile的应用场景,它可以用于各种编程语言的项目构建和管理,包括前端开发、后端开发等。通过Makefile,可以实现自动化编译、构建、测试和部署等任务,提高开发效率和项目管理的便利性。

腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储、人工智能等。具体针对Makefile的应用场景,腾讯云并没有直接相关的产品或服务。但是,腾讯云的云服务器可以作为开发环境和部署环境,提供稳定的计算资源和网络环境,用于执行Makefile中定义的命令和操作。

腾讯云云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm

需要注意的是,以上答案仅供参考,具体的解决方案和推荐产品应根据实际需求和情况进行评估和选择。

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

相关·内容

可移植的 Makefile 教程

当项目不大的时候,Makefile 应该是相当的简单,并且随着项目的成长,以一种可预见,清晰的方式不断丰富。 我不会覆盖 make 的每一个特性。如果想要学习所有完整的内容,你需要自行阅读的规范。...应该是看起来比较显然的一些东西,这样即使一个用户盲目地运行 make,也会得到一个有用的结果。 一个目标可以指定多次。任何新的先决条件,都会被附加到已有的先决条件中。...规则也需要指定 Shell 命令,这些 Shell 命令会被用于从先决条件中生成目标。 如果你打算创建示例中的源文件,并调用 make, 你会发现实际上已经知道了该如何构建目标文件。...PREFIX 宏默认应该为 /usr/local, 因为它是一个可以覆盖的宏,用户可以选择覆盖它将程序安装到其他地方,比如安装到他们的用户目录。...不幸的是,这个特性去除了目标的路径头,所以,在实际中,使用它往往会本来的更复杂(比如,比要求使用 -MT).

1.3K10

Linux makefile 教程 非常详细,且易懂

通过上述分析,我们知道,像clean这种,没有第一个目标文件直接或间接关联,那么后面所定义的命令将不会被自动执行,不过,我们可以显示make执行。...还有一个提一下的make的参数的是“-k”或是“–keep-going”,这个参数的意思是,如果某规则中的命令出错了,那么就终规则的执行,继续执行其它规则。...“all” 这个伪目标是所有目标的目标,其功能一般是编译所有的目标。 “clean” 这个伪目标功能是删除所有make创建的文件。...那么这条规则将被采用,退出该算法。 6、如果经过第5步,没有模式规则找到,那么就做更进一步的搜索。对于存在于列表中的第一个模式规则: 1)如果规则是终止规则,那就忽略,继续下一条模式规则。...所以,在make未来的版本中,应该提供一种机制来避免并行操作发生在函数打包文件上。 就目前而言,你还是应该不要尽量不要使用”-j”参数。

4.3K20

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

Drake 在处理数据方面有很多新增的特性,本来应该是make很好的继承者. 然而, Drake 在 2016 年的时候的创造者放弃了,因为有很多没有解决 bug. 所以我决定使用make....通常是您想要创建的文件的名称,但也可以比它更通用。下面这条线,seq 7,被称为规则 。把一个规则想象成一个食谱;一个或多个指定如何构建目标的命令。 规则前面的空格是一个制表符。对空格很挑剔。...默认情况下,规则中的每一行都单独发送到 Shell。对于特殊的目标.ONESHELL,我们可以覆盖,这样目标top10的规则就起作用了。...图 6.2:目标之间的依赖关系 让我们依次讨论每个目标: 目标all有两个依赖项,没有规则。这就像是按指定顺序执行一个或多个目标的快捷方式。在这种情况下:top10``heights.png。...如果没有data目录,它将首先创建。一旦满足了所有的依赖关系,就会执行规则,包括下载一个文件,并将其保存到与目标同名的文件中。 目标top10标记为冒牌货,所以如果指定,它将始终构建。

67310

Makefile经典教程(掌握这些足够)

通过上述分析,我们知道,像clean这种,没有第一个目标文件直接或间接关联,那么后面所定义的命令将不会被自动执行,不过,我们可以显示make执行。...还有一个提一下的make的参数的是“-k”或是“--keep-going”,这个参数的意思是,如果某规则中的命令出错了,那么就终规则的执行,继续执行其它规则。...达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make clean”形式)任何在makefile中的目标都可以指定成终极目标,但是除了以“- ”打头,或是包含了“=...“all”              这个伪目标是所有目标的目标,其功能一般是编译所有的目标。 “clean”       这个伪目标功能是删除所有make创建的文件。...这个Makefile中并没有写下如何生成foo.o和bar.o这两目标的规则和命令。

2.7K20

Linux 下的make命令与Makefile

达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make hello_kitty”形式)任何在makefile中的目标都可以指定成终极目标,甚至没有被我们明确写出来的目标也可以成为...all:这个伪目标是所有目标的目标,其功能一般是编译所有的目标。 clean:这个伪目标功能是删除所有make创建的文件。...) 我们可以注意到,这个Makefile中并没有写下如何生成hello.o和kitty.o这两目标的规则和命令。...请注意,在下面,我们没有提到后缀规则,原因是,所有的后缀规则Makefile载入内存时,会被转换成模式规则。...创建所有匹配于T或是N的模式规则列表 3. 如果在模式规则列表中有匹配所有文件的模式,如% ,那么从列表中移除其它的模式。 4. 移除列表中没有命令的规则。 5.

10.1K20

全网最牛Linux内核Makefile系统文件详解(纯文字代码)

我们的规则是: 1)如果这个工程没有编译过,那么我们的所有C文件都要编译并链接。 2)如果这个工程的某几个C文件修改,那么我们只编译修改的C文件,并链接目标程。...通过上述分析,我们知道,像clean这种,没有第一个目标文件直接或间接关联,那么后面所定义的命令将不会被自动执行,不过,我们可以显示make执行。...4、推导隐晦规则,并分析所有规则。 5、为所有的目标文件创建依赖关系链。 6、根据依赖关系,决定哪些目标重新生成。 7、执行生成命令。 1-5步为第一个阶段,6-7为第二个阶段。...make并不会完全马上展开,make使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖决定要使用了,变量才会在其内部展开。...还有一个提一下的make的参数的是“-k”或是“--keep-going”,这个参数的意思是,如果某规则中的命令出错了,那么就终规则的执行,继续执行其它规则

3.1K20

如何使用Makefile在Ubuntu上自动执行重复任务

允许应用程序的作者轻松地布置构建该特定项目所需的步骤。 尽管make是为自动化软件编译而创建的,该工具的设计灵活性足以使其可以自动执行几乎任何可以从命令行完成的任务。...事实上,我们可以把写成一行,但它提高了可读性,大大地将其分解为这样。 如果转义行尾字符,请确保在“\”后面没有任何多余的空格或制表符,否则您将收到错误。...$@:此变量是当前目标的名称。这允许我们引用您尝试制作的文件,即使此规则通过模式匹配。 $<:这是当前依赖项的名称。对于后缀规则,这是用于创建标的文件的名称。...我们可以通过创建一个包含转换的所有文件的变量来实现。...如您所见,我们已将.jpeg添加到后缀列表中,并为我们的规则添加了另一个后缀匹配项。 创建一些Targets 我们现在在Makefile中有很多,但我们还没有任何正常的目标。

2.3K00

Make

那时候,人们仍然喜欢共享软件,总是存在软件应该如何安装的问题。make程序是解决这个问题的最好的尝试,make的优雅使至今仍广泛使用。...让我们构建一个makefile创建一个readme.txt文件,该文件自动填充有关当前目录的一些信息。...在这个简单的示例中,我们创建了以draft_journal_entry.txt为目标的文件,该文件是作为命令的结果创建的。需要注意的是,目标下的任何命令都必须用Tab缩进。...这意味着下次为该目标运行make时将运行该目标的命令。通过这种方式,对依赖项的更改合并到目标中。为了避免不必要地运行命令,这些命令只在依赖项改变时运行,或者当目标根本不存在时运行。...的顶部创建一个名为all的规则,在该规则中我们可以列出由makefile构建的所有文件。

1.6K30

Makefile 使用总结

如果目标中没有模式的定义,那么"$*"也就不能推导出,但是,如果目标文件的后缀是make所识别的,那么"$*"就是除了后缀的那一部分。...这个特性是GNU make的,很有可能不兼容于其它版本的make,所以,你应该尽量避免使用"$*",除非是在隐含规则或是静态模式中。...Makefile 初始化文件中的变量 推导隐晦规则, 并分析所有规则 为所有的目标文件创建依赖关系链 根据依赖关系, 决定哪些目标重新生成 执行生成命令 2....Makefile 初级语法 2.1 Makefile 规则 2.1.1 规则语法 规则主要有2部分: 依赖关系 和 生成目标的方法....clean 删除所有make创建的文件 install 安装已编译好的程序,其实就是把目标可执行文件拷贝到指定的目录中去 print 列出改变过的源文件 tar 把源程序打包备份.

3.5K30

手把手教你写一个 Makefile 文件

可见,Makefile都成为了一种在工程方面的编译方法。当然,不同产商的make各不相同,也有不同的语法,其本质都是在 “文件依赖性” 上做文章。...Makefile是通过对比时间戳,当我们生成中间文件或可执行文件之后,他们的创建时间肯定要比 .c文件最后修改的时间晚,如果某个 .c文件有新修改过,的时间戳肯定会比原来生成中间文件或可执行文件的时间戳晚...,这样就判断这个 .c文件有更新过,就会重新编译。...在makefile文件的最后可以看到有个clean,这个clean就是前面所说的标签,它不是一个文件,所以make无法生成的依赖关系和决定它是否执行,只能通过显示指定这个目标才可以 ,通过make...中去掉了生成main.o、openFile.o、readFile.o和writeFile.o这些目标的依赖和生成命令,这就是make的隐含规则,make会试图去自动推导产生这些目标的依赖和生成命令,这个行为就是隐含规则的自动推导

1.5K10

Linux 开发 | 学习 Makefile

读入 include 的其他 Makefile,在对应位置展开 初始化变量 推导隐式规则;分析所有规则创建依赖关系链,决定哪些需要【重新】生成,执行命令。 从第一个 target(排除以 ....Makefile 中 第一个规则的第一个目标, 设置为完成的最终目标。...中 $ 有特殊含义,如果表示的字面意思需要写两个 $,所以 Makefile 中的四个 $ 传给Shell变成两个 $,而两个 $ 在Shell中表示当前进程的id,一般用它给临时文件起名,以保证文件名唯一...Make 的参数的是“-k”或是“--keep-going”,这个参数的意思是,如果某规则中的命令出错了,那么就终规则的执行,继续执行其它规则。...= 如果没有赋值过就赋予等号后面的值 += 添加等号后面的值 = 最基本的赋值(最后才展开) make会将整个makefile展开后,再决定变量的值。

5.3K10

qmake:变量手册

但是,如果有一个设置了此配置值的安装目标,则默认情况下不会安装安装必须明确地执行 make install_。 34、JAVA_HOME 此变量仅对 Android 目标有用。...注意:不要试图覆盖这个变量的值。 46、OUT_PWD 指定通向 qmake 放置生成的 Makefile 的目录完整路径。注意:不要试图覆盖此变量的值。...142、QMAKE_MAKEFILE 指定要创建Makefile 的名称。 143、QMAKE_QMAKE 包含 qmake 可执行文件的绝对路径。注意:不要试图覆盖这个变量的值。...如果构建没有 Qt GUI 模块的项目,则需要使用“-=”运算符排除 gui 值。...允许的值为: app:创建用于构建应用程序的 Makefile(默认)。 lib:创建用于构建库的 Makefile。 subdirs:创建用于在子目录中构建目标的 Makefile

3.7K20

技术栈系列基础篇2-Makefile

显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,生成的文件,文件的依赖文件,生成的命令。隐晦规则。...在Makefile中我们定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。文件指示。...)变量的引用可以使用 ${变量名} 或 $(变量名) 中括号或括号都可以Makefile 中的变量的使用其实非常的简单,因为没有像其它语言那样定义变量的时候需要使用数据类型。...clean这个伪目标功能是删除所有make创建的文件。install这个伪目标功能是删除所有make创建的文件。print这个伪目标的功能是例出改变过的源文件。...=:赋值的结果会等到整个路径执行完再决定,后面的会覆盖前面的,延迟赋值。

56630

CC++之makefile写法

其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。...通常情况下,我们需要这样编译: gcc -o calc main.c getch.c getop.c stack.c 如果没有makefile,在开发+调试程序的过程中,我们就需要不断地重复输入上面这条编译命令...现在你看到的就是一个最基本的Makefile语句,主要分成了三个部分,第一行冒号之前的calc,我们称之为目标(target),认为是这条语句所要处理的对象,具体到这里就是我们所要编译的这个程序...,我们已经有了一个不错的makefile,至少用来维护这个小型工程是没有什么问题了。...当然,如果进一步增加上面这个项目的可扩展性,我们就会需要用到一些Makefile中的伪目标和函数规则了。

81520

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

其实我们也可以把放到Mkfile里面 vim打开Makefile,这样写 大家先看,语法后面介绍 然后保存退出 此时我们想清理的话: 直接make clean 他就会自动帮我们执行清理的命令...make命令会读取makefile文件并根据其中的规则来进行构建。 使用make和makefile的主要步骤如下: 创建一个makefile文件,并为各个目标指定构建规则。...其实也有特殊情况: 在makefile中,依赖文件列表可以为空,表示目标文件没有任何依赖。...如果没指定,默认情况下,只会执行makefile文件中的第一个目标规则。...也就是说 .PHONY 修饰后的特性是总是被执行的。 那总是被执行的是什么意思呢?

22610

Go项目目录结构应该这么用!

答案是没有。...main.go就解决了,但是项目一旦大起来就不得不考虑一个结构清晰,分层合理的文件夹结构,项目的目录结构通常也是门面,内行人通过目录结构基本就能看出开发者是否有经验,针对这个问题我们来看看Go项目目录应该怎么去命名...当然了,实际上 Makefile 内都是你根据 make 语法规则,自己编写的特定 Shell 命令等。它是一个工具,规则也很简单。在支持的范围内,编译 A, 依赖 B,再编译 C,完全没问题。...Makefile 由多条规则组成,每条规则都以一个 target(目标)开头,后跟一个 : 冒号,冒号后是这一个目标的 prerequisites(前置条件),紧接着新的一行,必须以一个 tab 作为开头...无论哪种目录结构都是为了让项目看起来一了解,层次清楚,没有最好的只有合适团队开发的,但是在命名上尽量能和大众规范上保持一致,避免在语义上出现混淆。

2K30

qmake手册(Qt5.9.3)

您可以使用以下选项覆盖或修改此项: -t tmpl qmake将用tmpl覆盖任何设置的TEMPLATE变量,只有在.pro文件处理之后。...CONFIG 自定义构建目标的特定配置选项。可以设置递归来表示应该Makefile创建规则来调用子目标特定的Makefile中的相关目标。该成员默认为每个子目标创建一个条目。...指定项目目标的公司;这适用于将公司名称放在应用程序的属性中。这只有在VERSION或RC_ICONS变量设置并且RC_FILE和RES_FILE变量没有设置时才使用。...指定项目目标的描述;这适用于在应用程序的属性中描述的情况。这只有在VERSION或RC_ICONS变量设置并且RC_FILE和RES_FILE变量没有设置时才使用。...指定项目目标的产品;这适用于将产品放入应用程序的属性中。这只有在VERSION或RC_ICONS变量设置并且RC_FILE和RES_FILE变量没有设置时才使用。

5.4K20

翻译qmake文档(四) Building Common Project Types

RES_FILE - 只用于windows :应用程序链接的资源文件。      你只需要使用你有值的系统变量。例如,如果你没有额外的 INCLUDEPATH那么就不需要指定。...对于testcase项目,qmake会在生成的Makefile里插入一个检查目标。这个目标将会运行这个应用程序。如果终止退出代码等于0这个测试认为通过。      ...检查目标的运行可能会被一些Makefile变量自定义。这些变量是 变量 描述 TESTUNNER 在每个测试命令前添加一个命令或shell片段。...为目标提供不同的名字确保两者不会被彼此覆盖。 当使用qmake处理项目文件时。它将会生成一个makefile规则,用以允许项目在两种模式下构建。...可以使用默认的规则处理 make 在两种模式下安装 build_all选项确保在安装规则调用时将安装指向的两个目标版本: make install 也可以根据目标平台自定义构建目标的名字。

921100
领券