2

我正在尝试在 Win 7、64 位中使用 Octave。我安装了 cygwin64,带有 octave、gnuplot 和 x11。但是,当我启动 X 服务器并打开 octave 并尝试绘图时,它想出了这个:

octave:1> plot(1:10)
      0 [main] octave-3.6.4 5560 child_info_fork::abort: C:\cygwin64\bin\cygoctave-1.dll: Loaded to different address: parent(0xF30000) != child(0xE90000)
error: popen2: process creation failed -- Resource temporarily unavailable
error: called from:
error:   /usr/share/octave/3.6.4/m/plot/private/__gnuplot_open_stream__.m at line 30, column 44
error:   /usr/share/octave/3.6.4/m/plot/__gnuplot_drawnow__.m at line 72, column 19

有人可以在这里帮忙吗?谢谢!

-肖恩

4

1 回答 1

3

解决了。我从 cygwin 邮件列表中得到了答案,如下:

问题是,ld 用于计算默认 DLL 加载地址的哈希算法并不完全是防弹的,即使我们现在有这么大的地址空间可供 DLL 使用,也不能做到这一点。为了安全起见,它仍然需要运行 rebase。

但是,我刚刚在 64 发行版中发现了一个问题,导致在更新过程中没有运行 autorebase。这应该很快得到解决。暂时停止所有 Cygwin 进程,启动一个裸破折号并运行 /usr/bin/rebaseall。

所有功劳都归功于科琳娜。

于 2013-08-20T01:20:10.823 回答