有没有办法检查特定文件的大小是否小于某个常数?我假设 makefile 中的大小有关,并且想确保如果我的假设没有得到满足,我会得到一个错误。类似于 assert 的东西,但在 makefile 中。
if filesize(file) > C then error
else continue compilation
有没有办法检查特定文件的大小是否小于某个常数?我假设 makefile 中的大小有关,并且想确保如果我的假设没有得到满足,我会得到一个错误。类似于 assert 的东西,但在 makefile 中。
if filesize(file) > C then error
else continue compilation
把它放在你的规则中,在编译之前的某个地方:
test -n "$$(find filename -a -size +NNNc)"
其中filename
是文件名,NNN
是八位字节的大小。这将返回 false 并make
在大小小于或等于 时停止NNN
。
我的方法可能不是最漂亮的解决方案,但它对我有用:)
CHECKFILE = \
if [ ! -f "file" ]; then \
echo "file does not exist" ; exit 1 ; \
fi; \
FSIZE=$$(du -b "file" | cut -f 1) ; \
if [ $$FSIZE -lt 100000 ]; then \
echo "filesize too small" ; exit 1 ; \
fi
all:
@$(CHECKFILE)
我更喜欢这个——如果大于 256 字节则继续,否则停止制作——为了可读性:
test `wc -c <$<` -gt 256;
在反引号内,文件$<
被定向到wc -c
,它返回以字节为单位的大小$<
。在反引号评估 的大小之后$<
,test
然后将其与-gt
“大于”运算符一起使用。