Makefile 中的 MD5SUM
我正在尝试在 Makefile 中生成文件的 MD5 校验和。在我的 Makefile 中我有类似的东西;
CHECKSUM=md5sum $(myfile)
但变量 CHECKSUM 始终为空
有人能告诉我这里出了什么问题吗?
I'm trying to generate a MD5 checksum of a file in a Makefile. In my Makefile i have something like;
CHECKSUM=md5sum $(myfile)
But the variable CHECKSUM is always empty
Can anybody tell me what's wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是一个略有不同的示例,其中我将预期的 md5 值设置为 make 变量,然后在我的配方中的 shell 命令内对其进行检查。在本例中,我想下载特定版本的 Anaconda 并在安装之前检查其 md5sum。
Makefile:
输出:
注意使用
$$AnacondaMD5
填充内联bash
变量与使用$(ANACONDA_MD5)
填写make
变量版本:
Here is a slightly different example, where I set the expected md5 value as a
make
variable, and then check against it inside the shell commands in my recipe. In this case, I wanted to download a specific version of Anaconda and check its md5sum before installing it.Makefile:
Output:
Note the usage of
$$AnacondaMD5
to fill in the in-linebash
variable vs. the usage of$(ANACONDA_MD5)
to fill in themake
variableVersion:
正如克里斯所说,您需要类似的东西:
如果您不知道,CHECKSUM 将仅在那条线上可用。即以下将输出一个空白链接:
以下将执行您需要的操作:
或者,如果您需要多行,
如果您剪切并粘贴上面的内容,则需要插入制表符。
As Chris says, you need something like:
In case you didn't know, CHECKSUM will only available on that line. i.e. the following will output a blank link:
The following will do what you need:
Or, if you need it over multiple lines
If you cut n paste the above, you need to insert tabs.
您是否需要
makefile
中命令部分之外的命令的结果?然后,如果您的
make
是GNU-make
,则$(shell)
函数可用。例如:
Do you need the result of a command outside the commands-part in
makefile
?Then, if your
make
isGNU-make
,$(shell)
function is available.For example:
这对我有用:
现在使用
make md5sum
运行它。您应该获得文件
file..txt
。如果您从上面复制代码,请记住使用
tab
进行缩进或从存储库获取文件 https://github.com/rofrol/makefile-md5sum。This works for me:
Now run it with
make md5sum
.You should get file
file.<sum>.txt
.If you copy code from above, remember to use
tab
for indent or get the file from repo https://github.com/rofrol/makefile-md5sum.有关文件列表,您可以在 Makefile 中找到以下文件
For a list of files you can have following in Makefile