编译--->/dev/null

在Linux中,/dev/null是一个特殊设备文件,用于丢弃所有写入的数据。本文介绍了如何使用不同的重定向操作,如1>、2>和&>,将命令的正常输出或错误输出定向到/dev/null,以实现屏幕无显示信息。
摘要由CSDN通过智能技术生成

在Linux/Unix中,一般在屏幕上面看到的信息是从stdout (standard output) 或者 stderr (standard error output) 来的。
有了上面这些认知后,回头来讲什麼是 > /dev/null
这是把 stdout 或者 stderr 送到 /dev/null 里面
那什麼是 /dev/null 呢,/dev/null 是 Unix/Linux 里的【无底洞】

默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 。

uname -a > /dev/null

    把所有正确输出,传到/dev/null。

    显示错误信息到屏幕

uname -a 1> /dev/null

    把所有正确输出,传到/dev/null,和默认格式一样

    显示错误信息到屏幕

uname -a 2> /dev/null

    把所有错误输出,传到/dev/null

    显示正确信息到屏幕

uname -a &> /dev/null

    把所有正确,错误信息传到/dev/null

    屏幕无显示信息

这是一个Makefile文件,用于编译静态库libmyl.a。具体解释如下: - DST=libmyl.a:定义静态库的名称为libmyl.a。 - SRC=f1.c f2.c:定义源文件为f1.c和f2.c。 - OBJ=$(SRC:.c=.o):定义目标文件为f1.o和f2.o,这里使用了make中的替换功能,将.c替换为.o。 - all: $(DST):定义all为默认目标,依赖于静态库$(DST)。 - %.o: %.c:定义生成.o文件的规则,依赖于.c文件。 - gcc -c $<:生成目标文件,这里使用了make中的自动变量,$<表示依赖项中的第一个文件。 - $(DST): $(OBJ):生成静态库$(DST),依赖于目标文件$(OBJ)。 - ar crv $@ $^:打包静态库,这里使用了make中的自动变量,$@表示目标文件,$^表示依赖项中的所有文件。 - clean::定义清理目标,用于删除目标文件和静态库。 - rm -f $(OBJ) $(DST) &&gt;/dev/null:删除目标文件和静态库,并将错误输出重定向到/dev/null。 - install: all:定义安装目标,依赖于默认目标。 - cp $(DST) /usr/lib:将静态库复制到/usr/lib目录。 - rm $(DST) &&gt;/dev/null:删除静态库,并将错误输出重定向到/dev/null。 - uninstall::定义卸载目标。 - rm -f /usr/lib/$(DST) $(DST) &&gt;/dev/null:删除/usr/lib目录下的静态库和当前目录下的静态库,并将错误输出重定向到/dev/null。 通过运行make命令,可以编译生成静态库libmyl.a。运行make clean可以清理生成的目标文件和静态库。运行make install可以将静态库安装到/usr/lib目录下,运行make uninstall可以将静态库卸载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值