【问题标题】:Octave + GNUPlot + Aquaterm + Mac OS 10.6Octave + GNUPlot + Aquaterm + Mac OS 10.6
【发布时间】:2013-01-16 21:11:17
【问题描述】:

我正在尝试在 Octave 中完成所有基于 MatLab 的家庭作业 - MatLab 的开源表示。

但是,我在绘制图表时遇到了问题,我认为这是一个简单的链接问题。我在跑步: -Mac OS X 雪豹 (10.6) -八度 3.2.2 -Aquaterm 1.0.1 -GNUPlot 4.0

这是我从 shell 中得到的错误示例:

Mr-Buffalo:~ buffingtonr$ gnuplot 
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
Trace/BPT trap


octave-3.2.2:1> f = inline('x^2')

f(x) = x^2

octave-3.2.2:5> ezplot(f)
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
dyld: Library not loaded: /usr/local/lib/libaquaterm.1.0.0.dylib
  Referenced from: /usr/local/bin/gnuplot
  Reason: image not found
error: you must have gnuplot installed to display graphics; if you have gnuplot installed in a non-standard location, see the 'gnuplot_binary' function
octave-3.2.2:6> 

我没有解决此问题所需的 unix 基础。有什么建议/修复吗?

【问题讨论】:

    标签: macos unix osx-snow-leopard octave


    【解决方案1】:

    问题可能与此有关 http://macresearch.org/gnuplot-aquaterm-snow-leopard-1061 答案是:Fri, 2009-09-18 01:59 — TeGa

    【讨论】:

      【解决方案2】:

      您已安装 aquaterm 1.0.1,而 gnuplot 正在引用 1.0.0,您的系统上显然没有安装。

      我对在 Mac 上安装库不是很熟悉,但您也许可以从 the Aquaterm files page on Sourceforge 获取 1.0.0 .dmg 文件。

      或者,最新版本的 octave 或 gnuplot 可能会引用较新的库,因此您可以只升级其中一个。


      这是一个真正的 hack,但我看到几个地方(包括 this mailing list)建议您将 1.0.0 链接到您的 1.0.1 库。这通常是不可接受的,因为不能保证这些库是交叉兼容的。这至少是一个快速的解决方案,这样您就可以及时完成作业!

      【讨论】:

        【解决方案3】:

        新进展

        当我调查'/usr/local/lib/'时,我发现目录中有一个符号链接:

        aquaterm-1.0.0 -> /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm 
        

        所以我创建了一个类似的符号链接以使 gnuplot 正在寻找的文件 (...1.0.1) 指向默认的 AquaTerm 位置:

        aquaterm-1.0.1 -> /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm 
        

        这修复了 gnuplot 启动问题。我通过绘制一个函数验证了 gnuplot 成功自行绘制:

        Terminal type set to 'x11'
        gnuplot> plot sin(x)
        

        现在我在 Octave 中遇到了新的错误

        octave-3.2.2:7> ezplot(f=inline('sin(x)'))
        
        gnuplot> set terminal aqua enhanced title "Figure 1"
                              ^
                 line 0: You can't change the terminal in multiplot mode
        
        
        gnuplot> if (exists("GPVAL_TERM")) print GPVAL_TERM; else print NaN
                            ^
                 line 0: invalid expression 
        
        error: Invalid call to strcat.  Correct usage is:
        
         -- Function File:  strcat (S1, S2, ...)
        

        但是,我已经验证 gnuplot 4.0 已安装,并且实际上可以绘制图表。所以现在看来​​错误在于 Octave 和 GNUPlot 之间的通信。如果可能,我会尝试更新到更新版本的 gnuplot 并报告。

        -布法罗

        【讨论】:

          【解决方案4】:

          这对我有用:

          第 1 步: 将 /Library/Frameworks/AquaTerm.framework 替换为 /opt/local/Library/Frameworks/AquaTerm.framework。这将确保 gnuplot 编译引用正确的 64 位 AquaTerm 库

          第 2 步: 将 /Applications/AquaTerm.app 替换为 /Applications/MacPorts/AquaTerm.app。这将确保正确的 64 位 AquaTerm 二进制文件位于正确的位置

          来源: http://slashusr.wordpress.com/2010/01/17/gnuplot-with-aquaterm-on-osx-snow-leopard/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-09-03
            • 1970-01-01
            • 1970-01-01
            • 2011-12-01
            • 2023-03-14
            • 2012-01-31
            • 2011-09-09
            • 1970-01-01
            相关资源
            最近更新 更多