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

在 Makefile if 语句中获取退出代码 1

在 Makefile 中,可以使用 make 命令的 -q 选项来获取退出代码。具体来说,可以使用以下方式:

代码语言:txt
复制
make -q

这将获取命令的退出代码并将其打印到标准错误输出。

另外,您也可以使用 $? 变量来获取上一个命令的退出代码,例如:

代码语言:txt
复制
make clean
make -q
echo $?

在这种情况下,$? 变量将包含 make clean 命令的退出代码,然后 make -q 命令将使用该值。

需要注意的是,$? 变量只能在命令之间传递,并且只能在 Shell 脚本中使用。如果您需要在脚本中使用 $? 变量,则应该将其包含在 set -e 命令中,以确保脚本在执行任何命令之前退出。

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

相关·内容

Linux之make和makefile及其拓展

该文件中主要写依赖关系和依赖方法: 注意: 有了makefile文件,make命令才能派上用场,保存退出makefile文件后终端输入make命令就能完成自动编译 这个时候你可能有一个疑问:...很明显,该代码中没有任何循环或者选择结构,也就是说代码是从上往下执行的,先执行printf再执行sleep 不对啊,结果显示是先休眠再打印。...printf打印的结果没有显示屏幕上也没有丢失,是因为暂存在了缓冲区。...缓冲区默认是行刷新,也就是说如果printf语句中有\n就会马上刷新 \r称为回车,即回到该行行首,如果行首本来有字符,再写入就会覆盖。...printf("剩余时间:%2d/r",cnt);//%2d是控制格式,一次刷新两个字符 fflush(stdout);//刷新缓冲区 cnt--; sleep(1)

3.8K00

C语言——分支与循环

引言 由前面的知识我们可以知道C⾔是一种结构化的程序设计⾔,这⾥的结构包括顺序结构、选择结构、循环结构,C语言中我们可以使⽤ if 、 switch语句 实现分⽀结构,使⽤ for 、...6.switch 语句也是分⽀效果的,只有 switch 语句中使⽤ break 才能跳出 switch 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏...其他 case 语句中代码,直到遇到 break 语句或者 switch 语句结束。...所以 do while 语句中 循环体是⾄少执行⼀次。...如果在多层循环的代码中,循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层循环,所以如果想快速跳出循环的话使⽤ goto语句就更加的方便。

6110
  • C语言:分支与循环

    语句也是分⽀效果的,只有 switch 语句中使⽤ break 才能在跳出 switch 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续玩下执行,按顺序执行其他 case...语句中代码,直到遇到 break 语句或者 switch 语句结束。...,⽐如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得 switch 语句中加⼊ default ⼦句。... switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。...C⾔中有⼀个函数叫 time ,就可以获得这个时间 time_t time (time_t* timer); time 函数会返回当前的⽇历时间,其实返回的是1970年11⽇0时

    17010

    循环结构For...Next语句

    For 循环变量= 初始值 TO 终值 [step 步长值] 语句序列1 [exit for] [语句序列2] next [循环变量] 语句中For...比如For 循环变量 = 1 to 10 setp 1,就代表变量从1开始,每循环一次,循环变量值增加1,直到变量值为10为止,变量也循环中从1增加到10。...for...next 句 示 例 一 下面举例来介绍for循环,求1至100以内的所有偶数之和。...for...next 句 示 例 二 第二个例子是if...then语句来判定是否执行exit for退出循环,涉及判断结构和循环结构的简单嵌套,下面先演示下小程序运行的效果,插入了按钮来指定运行宏程序...= 5 Next i End Sub 过程的运行,单元格从A1开始循环,先通过if...then语句进行判断,如果该单元格为空值那么就exit for退出循环,不再执行for..next循环中的改变背景颜色代码

    1.9K20

    Linux基础操作

    输入重定向: more 一页一页的显示文件内容 less 显示文件内容:(相对与more来说,可以上下翻看查看) head 获取文件头多少行 head -几行 文件名 tail 获取文件尾后几行 tail...编写完成后,按Esc键(键盘的左上角)进入命令模式。 如果想退出,按Shift加:进入底行模式,然后按wq进行保存退出。 下面是底行模式的一些操作: q:退出,加上!为强制退出 w:写入,加上!...命令:不退出vim执行相关操作 set nu/nonu:显示/取消行号 vs 文件名:分屏操作 下面讲述命令模式下的一些操作 yy:复制,nyy从当前行到n行复制。...gcc/g++ 预处理:gcc -E 源代码 -o 目标文件.i 编译:gcc -S 源代码 -o 目标文件.s 汇编:gcc -c 源代码 -o 目标文件.o 链接:gcc 源文件 -o 目标文件,默认为动态链接...自动化的进行程序的编译链接,make会在当前文件中查找makefile或者Makefile

    48320

    不依赖yacc如何实现表达式按优先级解析

    (理解本文需要调试后面的代码部分,have fun!) 理解表达式解析部分 这段代码的功能是解析a+b+(c+d)*e*f+g;,包含符号优先级处理的功能。...解析*e 进入后ExprPrec=21(因为加1后面遇到+可以退出递归,后面遇到比加号高的不会退出递归,很巧妙的做法),TokPrec < ExprPrec 即 40 < 21:不进入 TokPrec...中间比较重要的就是乘号和+号的优先级问题,上述代码中,进入递归的含义为:把优先级高于当前符号的所有后续表达式一块解析出来,直到遇到当前符号为止,那么这里就涉及递归进入条件和递归退出条件了: 递归进入条件...假设当前符号为*遇到+后,TokPrec=20、ExprPrec=21会退出递归,而遇到*的话ExprPrec=40无法退出递归,代码比较巧妙,不容易理解。...语法解析器 gcc或clang编译均可,下面makefile是clang的。

    24360

    极简shell制作

    ,我们还需要创建 makefile文件 和 C的源文件: touch makefile#或者 Makefile touch myshell.c#其他名字都行,后缀是.c即可   因为我们构建的是C语言项目...,所以makefile内文件配置也很简单,使用vim(vim介绍及其使用)打开makefile文件: vim makefile 配置makefile文件: cc=-std=c99 mybin:file.c...gcc -o $@ $^ -g $(cc) .PHONY:clean clean: rm -f mybin   保存退出之后,就可以开始编写我们C语言代码啦,配置还是很简单的。...✈️ 获取输入的命令   有了命令行解释器,我们 shell 上还有输入命令这一行为,那么我们自定义shell就需要接收输入的命令行字符串。   ...这个命令,这个命令需要显示上一个进程的退出码,而获取进程的退出码,这个时候我们就需要先在全局范围内设置退出码变量: int lastcode = 0;//退出码   退出码是执行完进程之后返回的结果,

    13610

    Ubuntu下内核编程之第一个模块helloworld

    以下是建立的全过程: 1、首先肯定是编写模块的源代码,和Makefile。...2、然后让我们看看源代码的内容都是什么: 下边是jun_module.c /* * 2011-9-13 * author:jun */ #include<linux/init.h...,同时拼装出内核源码树的路径; # pwd获取当前文件夹,这就要求着在你进行make的时候要在源码目录下。...然后用下面命令看一下模块初始化时的输出吧: $dmesg 经过一瞬间的刷屏,终端听到了你想看到的那一行上——[ 2974.417502] Hellothere,I’m jun...看,就是这样: 啊哈,OK了,卸载和查看退出信息的任务就交给你了,记着要卸载了这模块啊,刘它存在又没什么用。好了,今天就到这里。

    62740

    cmake快速入门「建议收藏」

    因此,我们需要cmake和autotools这样的工具来帮助我们构建并维护项目代码。 看到这里,也许你会想到makefilemakefile不就是管理代码自动化编译的工具吗?...DIR_TEST1_SRCS) 2 ADD_LIBRARY ( Test ${DIR_TEST1_SRCS}) 该文件中使用命令 ADD_LIBRARY 将 src 目录中的源文件编译为共享库。...该命令参数 path* 指示的目录中查找文件 name1 并将查找到的路径保存在变量 VAR中。...: 下面我们首先生成 Debug 版的 Makefile :将变量 CMAKE_BUILD_TYPE 设置为 Debug ,按 “c” 进行 configure ,按 “g” 生成 Makefile退出...下面我们将生成 Release 版的 Makefile :再次执行命令 “ccmake .” 将变量CMAKE_BUILD_TYPE 设置为 Release ,生成 Makefile退出

    1.2K60

    如何编写一个Makefile文件(手把手的教你)

    Linux中,有一个叫make的东西,就相当于C语言的集成开发环境,我们只需要在make里面创建文件,写代码,make会帮我们管理这些文件。...源程序包里面,也有名为makefile的文件(m是小写),两个命名同时存在,这是合理的,开发一个项目的时候,工程师一般都会命名为Makefile然后打包交给用户,用户觉得某个Makefile需要改动...二、实战代码演示与讲解 2.1 没有makefile的项目是怎么创建运行的 2.1.1 创建文件 touch main.c tool1.c tool1.h tool2.c tool2.h 使用指令...2.1.3 给创建的文件放一点内容 vim * -p vim就是进入文本编辑的命令,按键 i 进入编辑模式,Esc退出编辑模式,:wq 保存退出到终端界面 "tool1.h" #ifndef...接下来逐步完善一下 三、代码优化 3.1 添加clean信息 _实际上,正如上面介绍的流程我们已经基本处理完了项目,这个时候我修改了某文件代码保存退出后,就需要重新的执行make指令,但是跟第一次不同的是

    3.5K30

    分支与循环(3)

    7.3 for循环的实践 练习:屏幕上打印1~10的值  参考代码:   7.4 while循环和for循环的对⽐ for 和 while 实现循环的过程中都有初始化、判断、调整这三个部分,但是 for...7.5 练习 练习1: 计算1~100之间3的倍数的数字之和 参考代码: 8. do-while 循环 8.1 语法形式 循环语句中 do while 语句的使⽤最少,它的语法如下: do 语句; while...所以 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。...10.3 参考代码: 11. goto 语句  C⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数 内跳转到设置好的标号处。...                if(disaster)                    goto error;             }       } } error: 本来 for 循环想提前退出得使

    9210

    我与C语言二周目邂逅vlog——3.分⽀和循环

    1. if语句 1.1 if C⾔是结构化的程序设计⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C⾔是能够实 现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种...", num); else printf("%d 是偶数\n", num); return 0; } 默认 if 和 else 语句中默认都只控制⼀条语句 1.3 匹配问题(悬空else问题)!...• switch 后的 expression 必须是整型表达式 • case 后的值,必须是整形常量表达式 5.1 break 只有 switch 语句中使⽤ break 才能在跳出 switch... 句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏其他 case 语句中代码,直到遇到 break 语句或者 switch 语句结束。...5.2 default 使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得 switch

    6510

    嵌入式Linux系列第4篇:Kernel编译下载

    输入vim Makefile 显示如下: ? 花花绿绿的看着不错啊,先找到设置交叉编译链的地方,具体方法如下图1、2、3步骤描述 ? 修改方法第一篇博客介绍的大家还记得吗?...然后ESC退出插入模式,最后输入:wq保存退出即可。 ? 以后大家多使用vim吧。 修改完Makefile后,再一次make uImage, ? 靠,什么情况,又报错了,我记得之前没遇到这个错误啊。...image目录里的970uimage就是我们需要的文件了。 ? 03.烧写内核 1)具体怎么烧录,上一篇已经描述过了,这里要注意烧写地址: ?...05.结束 本篇文章写下来,自己收获了很多,本以为之前调通的东西,很容易就操作出来了,没想到遇到这么多新的问题,不过遇到问题是好事,会让你思考一些原来没有注意到的地方。...这和常规NAND上的Yaffs2文件系统不一样。下一篇介绍如果换成NAND Yaffs2文件系统。

    1.2K50

    C++惯用法之消除垃圾收集器-资源获取即初始化方法(RAII)

    C++惯用法之消除垃圾收集器-资源获取即初始化方法(RAII) 0.导语 C语言中,有三种类型的内存分配:静态、自动和动态。...静态变量是嵌入源文件中的常数,因为它们有已知的大小并且从不改变,所以它们并不那么有趣。自动分配可以被认为是堆栈分配——当一个词法块进入时分配空间,当该块退出时释放空间。它最重要的特征与此直接相关。...然而,作为关心性能的高效程序员,这方面的一些问题困扰着我们:return语句中,由于使用了值语义,vector销毁之前不久就被复制到一个新vector中。 现代C ++中,这不再是严格的要求了。...因此,90年代出现了垃圾收集语言的爆炸式增长,旨在使程序员生活更加愉快,即使以性能为代价。 最后,RAII总结如下: 资源析构函数中被释放 该类的实例是堆栈分配的 资源是构造函数中获取的。...RAII代表“资源获取是初始化”。

    89020

    【C语言篇】分支语句详解(超详细)

    ,所以⼤家以后代码的时候要注意括号的使⽤,让代码的可读性更⾼。...switch语句中的break 前⾯的代码中,如果我们去掉case语句中的break,会出现什么情况呢?...原因是 switch 语句也是分⽀效果的,只有 switch 语句中使⽤ break才能在跳出 switch语句,如果某⼀个 case 语句的后边没有 break 语句,代码会继续往下执⾏,有可能执⾏...就⽐如上⾯的代码就执⾏了 case 2中的语句。 所以 switch语句中 break语句是⾮常重要的,能实现真正的分⽀效果。...switch语句中的default 使⽤ switch语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得

    13310

    Linux:常用软件、工具和周边知识介绍

    最终生成的可执行文件或共享库包含了所有必要的代码和数据,可以操作系统上运行。...gcc hello.o –o hello 注意这里是hello.o的二进制代码文件 3.2 动静态库 本质都是文件 1....每个使用了静态库的程序都会拷贝一份静态库代码,造成了一定的代码冗余。 使用静态库编译的程序可以没有任何其他文件的情况下运行。...依赖关系是指在构建目标文件之前需要先构建或获取的文件或操作。 依赖关系通常是源文件或其他目标文件,它们是构建目标文件的输入或先决条件。...默认情况下,make 工具会从上到下扫描Makefile文件,并构建第一个目标。这意味着,如果你Makefile中定义了多个目标,只有第一个目标会被构建。

    23110
    领券