尝试安装 Octave IO 包时出错

Error when attempting to install Octave IO package

尝试在 Windows 7 上安装 Octave io 包时,我收到以下错误:

>> pkg install io-2.4.12.tar.gz
          0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x60EA0000, RegionSize 0x190000, State 0x10000
C:\Octave\Octave-4.2.0\bin\perl.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
warning: doc_cache_create: unusable help text found in file 'getxmlattv'
For information about changes from previous versions of the io package, run 'news io'.
>>

我已经阅读了其他一些类似的问题,但一直找不到答案,老实说,我不明白错误信息。我在 windows 的类 Unix 界面中理解 cygwin,但仅此而已。我已尝试 运行ning 作为管理员,删除所有临时文件,重新启动等,但无法成功安装 pkg。有任何想法吗?

引用的文件 'getxmlattv' 只是一个函数,而不是描述的文本文件,不能 运行 作为独立文件:

    function [retval] = getxmlattv (xmlnode, att)

  retval = '';

  ## Get end of first tag
  iend = index (xmlnode, ">");
  ## Get start of value string. Concat '="' to ensure minimal ambiguity
  vals = index (xmlnode, [att '="']);
  if (vals == 0)
    ## Attribute not in current tag
    return
  elseif (vals)
    vals = vals + length (att) + 2;
    vale = regexp (xmlnode(vals:end), '"[ >/]');
    if (! isempty (vale))
      retval = xmlnode(vals:vals+vale-2);
    endif
  endif

endfunction

我看不出这有什么用。

对于 windows 版本的 Octave,安装程序中已经提供了软件包

https://wiki.octave.org/Octave_for_Microsoft_Windows

所以你不需要从源包安装 io。只需重新 运行 安装程序 如果你错过了。

请注意错误消息具有误导性,因为您没有使用 octave 的 cygwin 版本不过 msys/mingw 一个;那是基于修改的 他们忘记更新消息的 cygwin1.dll 版本:

$ strings msys-1.0.dll | grep cygwin
...
%P: *** Couldn't reserve space for cygwin's heap (%p <%p>) in child, %E
...