3

您可以将 Dialyzer PLT 输出复制并使用到另一台不同架构的机器上吗?例如,我在 x86_64 Linux 机器上构建了一个 PLT 文件。我可以在 x86 FreeBSD 或 Windows 机器上使用该文件吗?

4

3 回答 3

2

考虑到dialyzer plt 文件是二进制形式,在某些32/64 位元素的二进制大小方面可能存在一些问题,并且可能有关erlang 版本的元数据可能在发行版和发行版之间无法移植。

顺便说一句,dialyzer plt 文件编译时间不到半小时,之后可以通过命令行进行编辑,所以为什么要移动文件而不是简单地重新创建它(这也有利于始终拥有该特定版本的透析器文件和建筑)?

于 2011-07-23T14:49:27.207 回答
2

可以复制 Dialyzer 的 PLT,但是对于两台机器上 PLT 中包含的所有文件,您需要两个先决条件:

  1. 相同的绝对路径:Dialyzer 存储 PLT 中每个文件的绝对路径。因此,为了在每台机器上找到实际文件,它必须是相同的。
  2. 相同的版本:对于包含的每个 .beam 文件,PLT 存储相关源代码的 MD5 校验和(由于启用了 debug_info,因此嵌入在 beam 文件中)。如果仅更改一行,MD5 就会有所不同,并且 Dialyzer 将假定文件被更改并重新计算存储在 PLT 中的信息。
于 2011-08-04T14:15:35.167 回答
1

Twitter 上的@andrewtj 好心地告诉我 Kostis Sagonas 的一句话。Kostis 写道,PLT 文件的复制是可能的,前提是两台机器必须具有相同的配置。(我认为拥有相同的配置并不容易......)

https://twitter.com/#!/andrewtj/status/94752252941709312

http://groups.google.com/group/erlang-programming/msg/c34baf501eee56c7

于 2011-07-23T14:02:57.823 回答