2011-12-28 55 views
2

不确定上述错误的含义。我刚刚在我的Mac上安装了ghmm,并且每次执行import ghmm时都会出现此错误。我没有在我的linux机器上的ghmm install上得到这个消息,除此之外,所有的功能看起来都很好。随机:状态不够(1字节);忽略

我想知道是否有人曾经见过这个,如果有什么我可以做的摆脱这一点。我在两次安装之间做的唯一不同的事情是autogen.sh文件引用了“libtoolize”,它在我的mac上不存在,所以我将它更改为替换“glibtoolize”,这使得它可以编译并安装正常。

关于这个错误实际意味着什么(并希望我能如何解决它)的任何建议将是伟大的。

(我找不到对谷歌的答案,但这个方案似乎并没有具体到GHMM)

回答

2

我愿意在此加以纠正,但在猜我会说这有与ghmm或您的编译工具无关。我认为你看到的错误信息来自OSX使用的BSD随机数函数(它们是documented here)。

假设ghmm导致了警告(而不是蟒蛇),它可能可以配置构建过程中使用普通的旧rand或其他一些PRNG。或者,也许你可以找到合适的地方添加一个电话initstate()(参见上面的文档链接)以提供它想要的状态信息。

这从该名男子页位可能指向您的问题:

如果INITSTATE()被调用少于8个字节的状态信息,或者如果setstate这()检测到的状态信息已经被乱码,错误消息打印在标准错误输出上。

+0

我同意..我环顾四周,不认为它的特殊性。我会试着看看我是否可以按照你的建议回报。 – Lostsoul 2011-12-28 17:54:25

+0

有没有人设法解决这个问题? – 2012-07-05 18:09:30

0

的GHMM网站说,这个关于“libtoolize”:

的Mac OS X 10.6附带了一个破碎的libtool它打破了安装(而且还附带了Python 2.5的,所以你需要一个更新那)。詹姆斯·霍华德贴在邮件列表上的解决方案:GHMM列表]在OS编译X 10.6 http://sourceforge.net/mailarchive/message.php?msg_id=25874107 HTH

+0

是。我看到了,按照步骤,它仍然没有工作。 port命令安装glibtoolize,这就是为什么我必须更改构建代码中的引用。 – Lostsoul 2011-12-28 17:52:28

2

EAJ是正确的,INITSTATE需求状态信息超过8个字节。对ghmm执行此操作的最佳方式是使用./configure的--enable-gsl或--with-rng = bsd选项。 --with-rng = bsd使得“ghmm_rng_state_t”类型为8个字节而不是1个。请参阅ghmm目录中的rng.h。