make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当makefile本身存在语法错误无法被 make解析并执行时,前缀包含了makefile文件名和出现错误的行号。
在下述的错误列表中,省略了普通前缀:
[FOO] Error NN
[FOO] signal description
这类错误并不是make的真正错误。它表示make检测到make所调用的作为执行命令的程序返回一个非零状态(Error NN),或者此命令程序以非正常方式退出(携带某种信号),参考 5.4 命令的错误 一节。
如果错误信息中没有附加“***”字符串,则是子过程的调用失败,如果Makefile中此命令有前缀“-”,make会忽略这个错误。
missing separator. Stop.
missing separator (did you mean TAB instead of 8 spaces?). Stop.
不可识别的命令行,make在读取Makefile过程中不能解析其中包含的内容。GNU make在读取Makefile时根据各种分隔符(:, =, [TAB]字符等)来识别Makefile的每一行内容。这些错误意味着make不能发现一个合法的分隔符。
出现这些错误信息的可能的原因是(或许是编辑器,绝大部分是ms- windows的编辑器)在Makefile中的命令之前使用了4个(或者8个)空格代替了[Tab]字符。这种情况,将产生上述的第二种形式产生错误信息。且记,所有的命令行都应该是以[Tab]字符开始的。
commands commence before first target. Stop.
missing rule before commands. Stop.
Makefile可能是以命令行开始:以[Tab]字符开始,但不是一个合法的命令行(例如,一个变量的赋值)。命令行必须和规则一一对应。
产生第二种的错误的原因可能是一行的第一个非空字符为分号,make会认为此处遗漏了规则的“target: prerequisite”部分。
No rule to make target `XXX'.
No rule to make target ` XXX ', needed by `yyy'.
无法为重建目标“XXX”找到合适的规则,包括明确规则和隐含规则。
修正这个错误的方法是:在Makefile中添加一个重建目标的规则。其它可能导致这些错误的原因是Makefile中文件名拼写错误,或者破坏了源文件树(一个文件不能被重建,可能是由于依赖文件的问题)。
No targets specified and no makefile found. Stop.
No targets. Stop.
第一个错误表示在命令行中没有指定需要重建的目标,并且make不能读入任何makefile文件。第二个错误表示能够找到makefile文件,但没有终极目标或者没有在命令行中指出需要重建的目标。这种情况下,make什么也不做。参考 第九章 执行make
Makefile `XXX' was not found.
Included makefile `XXX' was not found.
没有使用“-f”指定makefile文件,make不能在当前目录下找到默认Makefile(makefile或者GNUmakefile)。使用“-f”指定文件,但不能读取这个指定的makefile文件。
warning: overriding commands for target `XXX'
warning: ignoring old commands for target `XXX'
对同一目标“XXX”存在一个以上的重建命令。GNU make规定:当同一个文件作为多个规则的目标时,只能有一个规则定义重建它的命令(双冒号规则除外)。如果为一个目标多次指定了相同或者不同的命令,就会产生第一个告警;第二个告警信息说新指定的命令覆盖了上一次指定的命令。
Circular XXX <- YYY dependency dropped.
规则的依赖关系产生了循环:目标“XXX”的依赖文件为“YYY”,而依赖“YYY”的依赖列表中又包含“XXX”。
Recursive variable `XXX' references itself (eventually). Stop.
make的变量“XXX”(递归展开式)在替换展开时,引用它自身。无论对于直接展开式变量(通过:=定义的)或追加定义(+=),这都是不允许的。
Unterminated variable reference. Stop.
变量或者函数引用语法不正确,没有使用完整的的括号(缺少左括号或者右括号)。
insufficient arguments to function `XXX'. Stop.
函数“XXX”引用时参数数目不正确。函数缺少参数。
missing target pattern. Stop.
multiple target patterns. Stop.
target pattern contains no `%'. Stop. <<<====我编译J_SIM时出现的错误!
mixed implicit and static pattern rules. Stop.
不正确的静态模式规则。
第一条错误的原因是:静态模式规则的目标段中没有模式目标;
第二条错误的原因是:静态模式规则的目标段中存在多个模式目标;
第三条错误的原因是:静态模式规则的目标段目标模式中没有包含模式字符“%”;
第四条错误的原因是:静态模式规则的三部分都包含了模式字符“%”。正确的应该是只有后两个才可以包含模式字符“%”。
warning: -jN forced in submake: disabling jobserver mode.
这一条告警和下条告警信息发生在:make检测到递归的make调用时,可通信的子make进程出现并行处理的错误。递归执行的make的命令行参数中存在“-jN”参数(N的值大于1),在有些情况下可能导致此错误,例如:Makefile中变量“MAKE”被赋值为“make –j2”,并且递归调用的命令行中使用变量“MAKE”。在这种情况下,被调用make进程不能和其它make进程进行通信,其只能简单的独立的并行处理两个任务”。
warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
为了现实make进程之间的通信,上层make进程将传递信息给子make进程。在传递信息过程中可能存在这种情况,子make进程不是一个实际的 make进程,而上层make却不能确定子进程是否是真实的make进程。它只是将所有信息传递下去。上层make采用正常的算法来决定这些。当出现这种情况,子进程只会接受父进程传递的部分有用的信息。子进程会产生该警告信息,之后按照其内建的顺序方式进行处理。
我写了一个Makefile,是用来在Linux2.4下编译一个模块的,其内容如下:
INCLUDEDIR = /usr/src/linux-2.4/include
DEBFLAGS = -O2
CC = gcc
CFLAGS = -D__KERNEL__ -DMODULE -Wall $(DEBFLAGS)
CFLAGS += -I$(INCLUDEDIR)
TARGET = ds1307
OBJS = $(TARGET).o
SRC = $(TARGET).c
$(CC) $(CFLAGS)
当我执行make的时候,所报错误为:
Makefile:9:*** commands commence before first target. Stop
请问高手,我的错误出在什么地方.
没定义目标,加一行,变成下面这个样子:
dsl307:
$(CC) $(CFLAGS)
我写了一个模块,名字叫zariphix_modules_001.c,内容如下:
#include<linux/kernel.h>
#include<linux/module.h>
int init_module(){
printk("Hello World!/n");
return 0;
}
void cleanup_module(){
printk("Bye-bye!/n");
}
然后写了一个Makefile,内容如下:
CC=gcc
MODFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX
zariphix_modules_001.o: zariphix_modules_001.c /usr/include/linux/version.h
$(CC) $(MODFLAGS) -c zariphix_modules_001.c
我在make的时候提示以下错误:
Makefile:5: *** 遗漏分隔符 。 停止。
分隔符是什么呢?还有我找不到我的内核源码树在系统的哪个位置,/usr/src下面没有
我用的系统是 ubuntu 5.10
$(CC) $(MODFLAGS) -c zariphix_modules_001.c
这一行最前面要有一个 TAB,不能在第一列上,注意,是TAB, 不是空格,
运行 $ sudo make
又有了一大串错误提示:
引用:
gcc -Wall -DMODULE -D__KERNEL__ -DLINUX -c zariphix_modules_001.c
In file included from /usr/include/linux/sched.h:16,
from /usr/include/linux/module.h:9,
from zariphix_modules_001.c:2:
/usr/include/linux/signal.h:2:2: warning: #warning "You should include <signal.h>. This time I will do it for you."
In file included from /usr/include/linux/resource.h:4,
from /usr/include/linux/sched.h:79,
from /usr/include/linux/module.h:9,
from zariphix_modules_001.c:2:
/usr/include/linux/time.h:9: 错误:‘struct timespec’ 重定义
/usr/include/linux/time.h:15: 错误:‘struct timeval’ 重定义
/usr/include/linux/time.h:20: 错误:‘struct timezone’ 重定义
/usr/include/linux/time.h:47: 错误:‘struct itimerval’ 重定义
In file included from zariphix_modules_001.c:2:
/usr/include/linux/module.h:41: 错误:字段 ‘attr’ 的类型不完全
/usr/include/linux/module.h:49: 错误:字段 ‘kobj’ 的类型不完全
zariphix_modules_001.c: 在函数 ‘init_module’ 中:
zariphix_modules_001.c:5: 警告:隐式声明函数 ‘printk’
make: *** [zariphix_modules_001.o] 错误 1
这是怎么回事呢?
解决这个问题了,原来是因为我的机器中没有内核源码树。
我下了一个新的内核源码包,编译了一下,但没有安装。再次make就通过。
可新的问题又出现了,当我用insmod加载模块的时候提示:
insmod: error inserting 'zariphix_modules_001.ko': -1 Invalid module format
郁闷。我试过了使用绝对路径和相对路径,也使用modprobe来加载,可都显示错误,这又是怎么回事呢?
也终于解决了~~~
安装了编译的内核~~就OK了
相关推荐
Make编译出错的原因及解决方法(嵌入式)
通过理解并解决这些常见的Make编译错误,可以提高嵌入式项目的编译成功率。当然,实际项目中可能会遇到其他类型的错误,但这些错误是经常出现的情况。通过仔细检查代码、检查头文件和库文件的路径、解决未定义的引用和处理重复定义等问题,可以更好地利用Make工具进行嵌入式开发中的项目编译。在嵌入式开发中,使用Make工具进行项目的编译是常见的做法。本文将介绍一些常见的Make编译错误,并提供相应的解决方法。这是最常见的Make编译错误之一。当代码中使用了未定义的函数或变量,并且没有包含相应的头文件时,编译会报错。
make 的常见错误信息zz
make 的常见错误信息 make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当makefile
Deepseek:物理神经网络PINN入门教程
物理信息网络(Physics-Informed Neural Networks, PINN)是一种将物理定律(如偏微分方程、守恒定律等)嵌入神经网络训练过程的深度学习方法。其核心思想是通过神经网络同时拟合观测数据并满足物理约束,从而解决传统数值方法难以处理的高维、噪声数据或复杂边界条件问题。
chatGPT辅助解决QT构建报错error: multiple target patterns
这个错误通常是由于 Makefile 文件中的规则定义不正确导致的。在这个 Makefile 规则中,报错信息。直接打开示例,构建报错error: multiple target patterns. Stop.您需要将依赖项和命令都放在同一行,并使用冒号分隔目标文件和依赖项。只是为了指定编码格式,可以删除这一行或在命令中直接指定编码格式。请注意,我们已经更改了命令中输出文件的路径分隔符。然后,您可以重新运行 make 工具来构建您的项目。这个修改后再次编译,ok了。再也没有构建错误了。
超声波雾化驱动设计:专用芯片FM8118替代MCU的工程实践
超声波雾化是一种基于压电陶瓷谐振原理的高频能量转换技术,其核心在于在1.6–2.4MHz频段精准激励雾化片以实现高效水分子破碎。传统采用通用MCU配合分立MOSFET的方案受限于PWM频率上限、栅极驱动能力不足及EMI控制困难,导致雾化效率低、温升高、可靠性差。专用雾化芯片(如FM8118)通过集成2.1MHz振荡器、零电压开关(ZVS)控制与过流/过热双重保护,从架构层面解决高频功率驱动的本质约束,显著提升驱动效率(达83.7%)与系统鲁棒性。该技术广泛适用于桌面加湿器、医疗雾化器、农业微喷等对体积、功耗
MITRE ATT&CK超详细学习笔记-01(背景,术语,案例)
MITRE是一个向美国政府提供系统工程、研究开发和信息技术支持的非营利性组织,于1958年从麻省理工学院林肯实验室分离出来后参与了许多最高机密的政府项目,开展了大量的网络安全实践。例如,MITRE公司在1999年发起了常见披露漏洞项目(CVE,CommonVulnera-bilitiesandExposures)并维护至今。其后,MITRE公司还维护了常见缺陷列表(CWE,CommonWeaknessEnumeration)这个安全漏洞词典。.........
Makefile中常见的错误信息
Makefile中常见的错误信息 make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 "-"、或者 make 使用 "-k" 选项执行时。make 执行过程的致命错误都带有前缀字符串 "***"。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是 "make");另外一种是当 Makefile 本身存在语法错误无法被 make 解析并执行时,前缀包含了 Makefile 文件名和出现错误的行号。 在下述的错误列表中,省略了普通前缀: [FOO] Error NN [FOO] sig
打开LWIP_DEBUG的打印信息调试
在lwip 2.1.2的版本,打开的debug 调试的步骤: 1.在debug.h 文件中找到debug打印的定义 默认LWIP_DEBUG这个宏没有定义, 2.在lwipopt.h 文件中或者其他文件定义 一下LWIP_DEBUG这个宏, 3.在opt.h 中可以打开各种宏的调试信息, /* --------------------------------------- ---------- Debugging options ---------- ---------...
Makefile 常见的错误信息
Makefile 常见的错误信息
Cadence Sigrity PowerDC实战:如何用PCB电热混合仿真解决散热难题(附详细配置步骤)
本文详细介绍了如何利用Cadence Sigrity PowerDC进行PCB电热混合仿真,以解决高功率密度设计中的散热难题。文章通过解析电热耦合原理,并附上详细的配置步骤与实战技巧,指导硬件工程师同步优化电气性能与热管理,从而在设计源头提升产品可靠性与效率。
工业异常检测评价指标(I-AUROC、PRO等)
模型评价指标:TPR、FPR、Recall、ROC、AUC、AUROC、IoU、PRO、AUPRO等
Makefile (12)— Makefile 常见的错误信息
make执行过程中所产生错误并不都是致命的,特别是在命令行之前存在、或者make使用-k选项执行时。make 执行过程的致命错误都带有前缀字符串***。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是make另外一种是当Makefile本身存在语法错误无法被make解析并执行时,前缀包含了Makefile文件名和出现错误的行号。这类错误并不是make的真正错误。它表示make检测到make所调用的作为执行命令的程序返回一个非零状态(Error NN。
制作你自己的yolov5数据集并进行训练
项目地址:make-your-yolov5_dataset 一、数据集标注软件 labelImg labelMe 精灵标注助手 更多的标注工具你可以去看:深度学习图像标注工具汇总 、 十个最常用深度学习图像/视频数据标注工具 、 百度一下 在这里我选择使用labelImg 二、数据集标注 下载labelImg 解压,直接打开labelimg.exe labelImg标注数据 标注完成后即可获得VOC格式(生成.xml文件)的数据 目录结构: dataset │ ├─Annotations .
浅显易懂 Makefile 入门 (12)— Makefile 常见的错误信息
1. 常见的错误信息 make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 -、或者 make 使用 -k 选项执行时。 make 执行过程的致命错误都带有前缀字符串 ***。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是 make);另外一种是当 Makefile 本身存在语法错误无法被 make 解析并执行时,前缀包含了 Makefile 文件名和出现错误的行号。 在下述的错误列表中,省略了普通前缀: [FOO] Error NN [FOO] signal description
uniapp [全端兼容] - 详细实现人脸识别和活体检测功能,实时监测人脸是否进入区域及动作是否正确播报,免费自动提示引导动作及语音,提供提供实名认证、身份证识别、人脸信息采集、刷脸扫脸认证示例代码
uniapp,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,人脸识别,扫脸认证,人脸认证,活体认证,身份认证,uni-app人脸识别详细教程,如何在app端实现免费人脸识别教程,如何在小程序端做,最好用的插件,安卓ios百度人脸识别、活体检测、人脸采集APP,H5人脸识别带前后摄像头,适合新手看的人脸识别功能教程,详细示例代码源码,有没有免费的,接入百度,阿里云人脸识别,百度,api,活体检测,数据采集,动作提示指引,语音提示指引,报错,无法核验一直出错,根本用
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
Makefile的常见错误信息
转载:http://blog.csdn.net/wanruirui/article/details/5894780 本章是对 make 执行过程中可能出现常见错误进行汇总、分析,并给出修正的可能方法。 make 执行过程中产生的错误并不是所有都是致命的;特别在命令行之前使用“ - ”、或者使用 make 的“ -k ”选项。 m
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
12、Makefile 中常见的错误信息
Makefile 中常见的错误信息
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
[转]Makefile的常见错误信息
<br />本章是对make执行过程中可能出现常见错误进行汇总、分析,并给出修正的可能方法。<br />make执行过程中产生的错误并不是所有都是致命的;特别在命令行之前使用“-”、或者使用make的“-k”选项。make执行过程的致命错误都带有前缀字符串“***”。<br />错误的信息都有前缀,一种是执行程序名作为错误的前缀(通常是“make”);另外一种是当Makefile本身存在错误时,前缀包含了文件名和出现错误的行号。<br />在下述的错误列表中,省略了普通的前缀:<br />[FOO] Err
错误代码 missing-method 错误原因: 缺少方法名参数_Makefile中常见的错误信息
make 执行过程中所产生错误并不都是致命的,特别是在命令行之前存在 "-"、或者 make 使用 "-k" 选项执行时。make 执行过程的致命错误都带有前缀字符串 "***"。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是 "make");另外一种是当 Makefile 本身存在语法错误无法被 make 解析并执行时,前缀包含了 Makefile 文件名和出现错误的行号。在下...
make的常见错误信息
错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当Makefile本身存在语法错误无法被make解析并执行时,前缀包含了makefile文件名和出现错误的行号。 在下述的错误列表中,省略了普通前缀: [FOO] Error NN [FOO] signal description 这类错误并不是make的真正错误。它表示make检测到make所调用的作为执行命令的程序返回一个非零状态(Error NN),或者此命令程序以非正常方式退出(携带某种信号)。 如果错误信息中没有附加“
make的常见错误信息(总结中)
转自:http://hi.baidu.com/wangy0919/blog/item/d01ae31bbd17361b8618bf36.html make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是
GNU make中文手册-第15章: make的常见错误信息
GNU make中文手册-第15章: make的常见错误信息关键词: GNU make中文手册-第十五章 make的常见错误信息 第十五章 make的常见错误信息--------------------------
make 的常见错误信息
make执行过程中所产生错误并不都是致命的;特别是在命令行之前存在“-”、或者make使用“-k”选项执行时。make执行过程的致命错误都带有前缀字符串“***”。错误信息都有前缀,一种是执行程序名作为错误前缀(通常是“make”);另外一种是当makefile本身存在语法错误无法被make解析并执行时,前缀包含了makefile文件名和出现错误的行号。 在下述的错误列表中,省略了普通前缀:
3051



被折叠的 条评论
为什么被折叠?



