sách gpt4 ai đã đi

scripting - 制作/制作文件进度指示!

In lại 作者:行者123 更新时间:2023-12-03 10:43:06 31 4
mua khóa gpt4 Nike

看看这个 makefile,它有某种原始的进度指示(可能是一个进度条)。

请给我建议/意见!


# BUILD 最初是未定义的
ifndef 构建

# max 等于 256 个 x
十六:= x x x x x x x x x x x x x x x x
MAX := $(foreach x,$(十六),$(十六))

# T 通过用特殊字符串替换 BUILD 来估计我们正在构建的目标数量
T := $(shell $(MAKE) -nrRf $(firstword $(MAKEFILE_LIST)) $(MAKECMDGOALS)\
BUILD="COUNTTHIS"| grep -c "COUNTTHIS")

# N 是基数 1 中待处理目标的数量,实际上是基数 x :-)
N := $(wordlist 1,$T,$(MAX))

# 自动递减计数器,返回以 10 为基数的待处理目标数
计数器 = $(words $N)$(eval N := $(wordlist 2,$(words $N),$N))

# BUILD 现在定义为显示进度,这也避免了在循环中重新定义 T
BUILD = $(T) 的 @echo $(counter)
万一

# 虚拟假目标

.PHONY:全部干净

全部:目标
@echo 完成

干净的:
@rm -f 目标 *.c

# 虚拟构建规则

目标: a.c b.c c.c d.c e.c f.c g.c
@触摸$@
$(构建)

%。C:
@触摸$@
$(构建)



欢迎所有建议!

1 Câu trả lời

这个不那么侵入性,更令人敬畏。

ifneq ($(words $(MAKECMDGOALS)),1)
.DEFAULT_GOAL = all
%:
@$(MAKE) $@ --no-print-directory -rRf $(firstword $(MAKEFILE_LIST))
khác
ifndef ECHO
T := $(shell $(MAKE) $(MAKECMDGOALS) --no-print-directory \
-nrRf $(firstword $(MAKEFILE_LIST)) \
ECHO="COUNTTHIS" | grep -c "COUNTTHIS")

N := x
C = $(words $N)$(eval N := x $N)
ECHO = echo "`expr " [\`expr $C '*' 100 / $T\`" : '.*\(....\)$$'`%]"
endif

.PHONY: all clean

all: target
@$(ECHO) All done

clean:
@rm -f target *.c
# @$(ECHO) Clean done

target: a.c b.c c.c d.c e.c
@$(ECHO) Linking $@
@sleep 0.1
@touch $@

%.c:
@$(ECHO) Compiling $@
@sleep 0.1
@touch $@

endif

关于scripting - 制作/制作文件进度指示!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/451413/

31 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com