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

生成的makefile不断尝试编译不存在的文件

是因为在makefile中存在错误的依赖关系或者目标文件不存在的情况。当make命令执行时,它会根据makefile中的规则来判断哪些文件需要重新编译。如果makefile中的规则存在错误,比如错误地指定了依赖关系或者目标文件不存在,那么make命令就会不断尝试编译这些不存在的文件,导致编译失败。

为了解决这个问题,可以采取以下几个步骤:

  1. 检查makefile中的依赖关系:确保makefile中的依赖关系正确无误。每个目标文件应该列出其所依赖的源文件和其他目标文件。如果某个目标文件依赖的文件不存在或者依赖关系错误,就会导致编译失败。
  2. 检查目标文件是否存在:确保makefile中列出的目标文件确实存在于相应的路径中。如果目标文件不存在,make命令就无法找到它,从而导致编译失败。
  3. 检查编译命令:确保makefile中的编译命令正确无误。编译命令应该包含正确的源文件和目标文件路径,并且能够正确地生成目标文件。
  4. 清理无效的目标文件:如果make命令不断尝试编译不存在的文件,可以尝试清理掉之前生成的无效目标文件。可以使用make clean命令或手动删除这些目标文件,然后重新执行make命令。

总结起来,生成的makefile不断尝试编译不存在的文件可能是由于makefile中的依赖关系错误或目标文件不存在所导致的。通过检查依赖关系、目标文件和编译命令,并清理无效的目标文件,可以解决这个问题。

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

相关·内容

makefile 指定文件生成目录

大家好,又见面了,我是你们朋友全栈君。 1.上一篇博客虽然简单实现了自动处理依赖关系,但是生成各种临时文件都混在一起,太乱了。...假定我们文件放在src目录,头文件放在inc目录,.o文件放在obj目录,.d文件放在dmk目录,Makefile和上述4个目录为同一级别。.../inc D_OBJ = obj D_MK = dmk 2.自动遍历src目录下所有.c文件 SRC_C = $(wildcard $(D_SRC)/*.c) # wildcard...$(D_SRC)所有子目录同时把子目录下.c文件遍历出来 假设src目录中有a.c,b.c,则$(SRC_C) 表示 src/a.c src/b.c 3.生成所有的.o文件依赖和.d文件集合 OBJ_C...c替换成.o,即a.o b.o addprefix表示增加前缀$(D_OBJ)/,则OBJ_C变量表示为obj/a.o obj/b.o 4.明白了上述语句之后我们可以把makefile写成如下状态 D_SRC

4K20

使用autoconf生成Makefile编译工程步骤

前言 在Linux下,编译和链接需要用Makefile,而写好一个Makefile可不容易,写出一个规范Makefile更是麻烦。...我们可以利用autoconf来生成一个Makefile,尤其在大型工程里,能省去很多麻烦。...,用空格隔开; foreign指的是只检测必须文件; subdir-objects指的是编译生成.o文件可以放在子路径(跟源文件放一起),没有这个选项的话,所有.o文件都会放在工程根目录下;...生成config.h.in autoheader 用automake生成Makefile.in,需要加上 –add-missing使其自动加上缺省文件 automake --add-missing 然后我们这个软件就做好了...别人下载了我们源码包之后怎么编译链接可执行文件呢?或者说我们怎么编译链接我们可执行文件呢? 以下是源码安装一般步骤,也是我们编译链接步骤 首先生成Makefile .

1.1K30
  • keil生成bin文件失败_编译生成文件扩展名为

    在KEIL魔术棒中通过以下方式生成bin文件时,居然出错,当时震惊了,第一次出现这种情况: 使用命令:fromelf –bin –output .\bin\APP.bin ....\STM32_APP\STM32_APP.axf 生成bin文件,居然变成了文件夹!如下图: 一开始以为是ROM地址设置不对,找之前工程来对比“魔术棒”中配置,发现没有问题!...然后怀疑是工程文件名称太长,或者下划线太多。。。重新新建工程,重命名文件夹等各种操作,发现问题依旧! 然后嫉妒怀疑是KEILBUG =_=! 直到最后才发现,原来是代码问题!...“这种情况一般是我们程序里使用了 “attribute” 等命令来指定某些变量到指定ROM地址中, 而这个地址又刚好不是我们工程程序所在ROM地址区域, 例如, 现在我指定一个变量到0x8003000...;这个地址, 而我们程序开始地址是0x8006000, 此时编译编译时会将程序分段, 也就会生成上诉多个文件, 解决方法是将需要设置在ROM中变量设置在本工程程序ROM内, 即起始地址之后

    1.4K20

    文件目录Makefile写法

    文件目录Makefile写法 1、前言   linux下程序开发,涉及到多个文件,多个目录,这时候编译文件任务量比较大,需要写Makefile 2、简单测试   测试程序在同一个文件中,共有func.h...也就是说通常将文件按照文件类型放在不同目录当中,这个时候Makefile需要统一管理这些文件,将生产目标文件放在目标目录下,可执行文件放到可执行目录下。测试程序如下图所示: ?.../lib -lworld 上面这句表示在编译hello.c时-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件目录,   ...路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件) 参考: http://www.groad.net/bbs/read.php...附:我makefile: ######################################## #makefile ####################################

    3.8K20

    「.vue文件编译」3. 模板编译之AST生成

    下面看vue是如何基于parseHTML暴露几个钩子来定制化自己能力(主要是指令v-for,v-if等) 整体结构如下 // src/compiler/parser/index.js import...处理部分指令:v-for、v-if、v-once,将相应指令信息解析并存储到AST节点上 尝试获取v-for值,并存储到AST节点上 { alias: "item" for: "items" iterator1...: "index" } 尝试获取v-if、v-else、v-else-if 值 ```js // 有 v-if 时 el.if = exp, el.ifConditions.push({...const exp = getBindingAttr(el, 'key') if (exp) { el.key = exp // 保存到节点上 } } ---- getBindingAttr: 尝试获取动态绑定...所以作为最佳实践,请在组件内优先选择 template 选项或 .vue 文件一个  元素来定义模板。

    1.2K40

    OpenHarmony开发——Makefile方式组织编译库移植

    /yxml.h-yxml/yxml.md-yxml/yxml-states-设置交叉编译设置Makefile交叉编译工具链,修改并编译该库,生成OpenHarmony平台可执行文件,步骤如下:设置工具链将下列...clang工具链配置替换掉yxml库根目录Makefile(即表1中文件)中原有配置。...上述目录会在全量编译生成,因此移植前先完成一次全量编译。...查看结果步骤2操作完成后,yxml下会生成out目录,里面有静态库文件和测试用例:表2 yxml编译生成目录名称描述OpenHarmony/third_party/yxml/yxml/out/lib/编译生成静态库存放目录...OpenHarmony/third_party/yxml/yxml/out/test/编译生成测试用例及其输入输出等文件存放目录测试yxml库测试步骤与double-conversion库基本一致,

    13310

    自动生成Makefile全过程详解

    一、Makefile介绍 Makefile是用于自动编译和链接,一个工程有很多文件组成,每一个文件改变都会导致工程重新链接,但是不是所有的文件都需要重新编译Makefile中纪录有文件信息,在...Makefile宗旨就是:让编译器知道要编译一个文件需要依赖其他哪些文件。当那些依赖文件有了改变,编译器会自动发现最终生成文件已经过时,而重新编译相应模块。...Makefile.am中定义宏和目标,会指导automake生成指定代码。例如,宏bin_PROGRAMS将导致编译和连接目标被生成。...7、 Makefile 在符合GNU Makefiel惯例Makefile中,包含了一些基本预先定义操作: make 根据Makefile编译源代码,连接,生成目标文件,可执行文件。...五、结束语 通过上面的介绍,你应该可以很容易地生成一个你自己符合GNU惯例Makefile文件及对应项目文件

    1.8K20

    makefile-rpm编译软件,输出依赖软件包编译顺序

    最近在iMX6x开发板下制作Linux根文件系统,前期需要自己整理与平台无关Core软件包依赖关系、修改软件包对应Spec文件、将下载.tar.gz等源代码包打包成rpm包,然后使用rpmbuild...很头痛一个问题就是整理软件包依赖关系、确定它们编译顺序。    ...在打包编译时候需要知道软件包编译顺序,本来可以通过编程建立不同软件包依赖关系树,应该是从叶子节点依次往上层节点编译,直至根节点吧。...但是用C语言或者C++编写起来需要不少时间,毕竟需要构建树这种数据结构,最后师傅告诉我一个简单方法:使用Make自动功能实现软件包编译顺序的确定,编写一个Makefile就能轻松实现。...要得到他们编译顺序,那么对应Makefile可以这样写: all: a b c d e f g h i j k l m n @echo $@ a: b c d e @echo $@

    1.5K20

    【分享】在Petalinux编译多个源文件Linux内核模块,以及扩展Makefile功能

    更多信息可以参考相关文档,比如深入理解 Linux 配置/构建系统是如何工作,LINUX内核编译学习笔记, Linux 内核模块编译 Makefile, Linux 2.6内核Makefile浅析。...多源文件Makefile 如果有多个源文件,也可以学习Linux内核模块Makefile写法,使Petalinux内核模块也支持多个源文件。...KERNELRELEASE是Linux内核源码顶层Makefile定义一个变量。如果在内核源码目录内编译,先执行Linux内核源码顶层Makefile,会定义KERNELRELEASE具体值。...如果加上对KERNELRELEASE检查,前面的Makefile可以改造成既可以在在内核源码目录内编译,也可以在在内核源码目录外编译。...如果既不在PetaLinux环境里编译,也不再Linux内核源码目录内编译,请再在上面的Makefile文件里定义内核源码目录。

    6.3K10

    浅谈内核Makefile、Kconfig和.config文件

    Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和...三者作用: 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点菜。 Makefile:一个文本形式文件编译文件方法。...Kconfig:一个文本形式文件,内核配置菜单。 .config:编译内核所依据配置。...显示为 , 假如选择编译成内核模块,则会在.config中生成一个 CONFIG_HELLO_MODULE=m配置,选择Y就是直接编进内核,会在.config中生成一个 CONFIG_HELLO_MODULE...3、.config 参考:linux-3.4.2/.config 通过前俩个文件分析,.config含义已经很清晰:内核编译参考文件,查看里面内容可以知道哪些驱动被编译进内核。

    3.3K31

    2020年度总结 - 不断尝试与反思一年

    受上半年疫情影响,导致创业本来爆发增长期推后了半年左右,幸好老大他们运作得当,保证了各位员工待遇前提下,维持业务正常运行。...使用新 JDK,最大担心就在于是否会引入性能或者其他问题,JFR 监控可以有效解决这个担心。并且我通过对于 JFR 学习,深入分析了最新 JDK 源码以及 JDK 各个模块原理。...反思自己文章 今年由于疫情,也促进了很多自媒体生长。今年感觉涌现了一大批优秀博文作者,并疯狂吸粉无数。像是我关注三太子敖丙,沉默王二等等。...看了他们优秀文章,对比自己文章,感觉自己文章太过于学术范,也由于本人文笔不好,有些地方晦涩难懂,并且喜欢自 high,对于自己感兴趣地方深入过多,导致有些偏离主旨。...应该更多从读者角度出发,用更容易理解语言讲述,并多配图。我觉得,可能更直接是要从各位读者那里直接获取意见,希望大家不吝赐教,感谢。

    31140

    Linux CC++工程中可生成ELF、动静态库文件通用Makefile

    最近写了一个*nix环境下Makefile文件,支持编译C/C++,同时能够通过参数配置生成ELF目标文件、动态链接库(.so)和静态链接库(.a)文件。...1 Makefile文件配置说明 首先,根据生成目标文件类型(ELF可执行文件,动态链接库文件或静态链接库文件),配置GEN_LIBS、GEN_DYN_LIB、EXCUTE_BIN、STATIC_LIBS...其次,如果生成目标文件依赖其它库文件,那么只要将LD_LIB_DIR设置成该动态库所在目录,LD_LIBS设置成要链接动态库文件名即可。...同样,更建议在工程配置文件中配置,例如: export PROJECT_DIR=/home/typecodes 2 使用方法 在配置好Makefile文件变量对应值后,直接将该文件放置在需要编译...执行完make命令后,在当前目录下会生成.o目标文件以及.d依赖文件,ELF可执行文件放在工程bin目录下,动/静态库文件放在工程lib目录下。

    26210

    flume搜集日志:如何解决实时不断追加日志文件不断增加文件个数问题

    本文背景: 在搜集日志过程中,日志文件个数及日志文件需要不断追加。flume1.6中,可以使用tail -f可以解决不断追加文件,但是由于日志文件个数是变化,不可能只产生一个文件。...需求: 需要能够监控不断增加文件,并且单个文件也是不断追加 解决办法: 这时候flume1.7就产生了,很好通过 TAILDIRl解决了这个问题。TAILDIRl可以监控一个目录下文件。...单节点agent 1) 增加配置文件 [Bash shell] 纯文本查看 复制代码 ?...创建所需文件 [Bash shell] 纯文本查看 复制代码 ?...再次查看kafka consumer 切换到创建kafka consumershell界面,会看到我们log.1中文件内容被打印在屏幕上。 ?

    1.7K70

    Linux CC++工程中可生成 ELF、动静态库文件通用 Makefile(二)

    今天对之前写 Linux C/C++工程中可生成ELF、动/静态库文件通用Makefile - TypeCodes 文章里面的 Makefile 进行了优化,增加了在当前目录生成单个可执行文件功能...1 功能说明 之前已有的功能不再赘述,这次主要是在包含多个 cpp 文件项目中生成一个可执行文件(之前只能一个 cpp 或者 c 文件生成对应一个可执行文件)。...如上图所示,我一个 myRedisSentinel 目录中包含了多个 cpp 文件,然后只要在 SINGLE_BIN 里面配置想要输出可执行文件名称,最后执行 make -j4 命令即可生成。...2 附录:Makefile 文件源码 已将下面的 Makefile文件托管到 github仓库中: 1、GitHub: https://github.com/vfhky/General_Makefile...: A general makefile to generate an ELF or a # dynamic or a static library for

    9110

    Linux CC++工程中可生成 ELF、动静态库文件通用 Makefile(二)

    今天对之前写 Linux C/C++工程中可生成ELF、动/静态库文件通用Makefile - TypeCodes 文章里面的 Makefile 进行了优化,增加了在当前目录生成单个可执行文件功能...1 功能说明 之前已有的功能不再赘述,这次主要是在包含多个 cpp 文件项目中生成一个可执行文件(之前只能一个 cpp 或者 c 文件生成对应一个可执行文件)。...如上图所示,我一个 myRedisSentinel 目录中包含了多个 cpp 文件,然后只要在 SINGLE_BIN 里面配置想要输出可执行文件名称,最后执行 make -j4 命令即可生成。...2 附录:Makefile 文件源码 已将下面的 Makefile文件托管到 github仓库中: 1、GitHub: https://github.com/vfhky/General_Makefile...: A general makefile to generate an ELF or a # dynamic or a static library for

    10210
    领券