3

私は、MatLabのオープンソース表現であるOctaveでMatLabベースの宿題をすべて実行しようとしています。

ただし、グラフをプロットするのに問題があり、単純なリンクの問題だと思います。私が実行しているもの:-Mac OS X Snow Leopard(10.6)-Octave 3.2.2 -Aquaterm 1.0.1 -GNUPlot 4.0

シェルから発生するエラーの例を次に示します。

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の基盤がありません。提案/修正はありますか?

4

4 に答える 4

1

あなたはアクアターム1.0を持っています。1がインストールされ、gnuplotは1.0を参照しています。0、明らかにシステムにインストールされていません。

私はMacにライブラリをインストールすることにあまり慣れていませんが、SourceforgeのAquatermファイルページから1.0.0.dmgファイルを取得できるかもしれません。

または、octaveまたはgnuplotの最新バージョンが新しいライブラリを参照している可能性があるため、代わりにそれらの1つをアップグレードできる場合があります。


これは本当のハックですが、 1.0.0を1.0.1ライブラリにリンクすることを提案する場所(このメーリングリストを含む)をいくつか見ました。ライブラリが相互互換性があるという保証がないため、これは通常は受け入れられません。宿題を時間内に終わらせることができるように、それは少なくとも迅速な修正になるでしょう!

于 2009-09-08T16:55:55.603 に答える
1

新しい進歩

'/ 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-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の新しいバージョンにアップデートして、報告してみます。

-バッファロー

于 2009-09-09T09:08:46.777 に答える
1

問題は、回答のこのhttp://macresearch.org/gnuplot-aquaterm-snow-leopard-1061に関連している可能性が あります:金、2009-09-18 01:59 — TeGa

于 2009-09-22T10:33:05.147 に答える
0

これは私のために働いた:

手順1: /Library/Frameworks/AquaTerm.frameworkを/opt/local/Library/Frameworks/AquaTerm.frameworkに置き換えます。これにより、正しい64ビットAquaTermライブラリがgnuplotコンパイルによって参照されるようになります

手順2: /Applications/AquaTerm.appを/Applications/MacPorts/AquaTerm.appに置き換えます。これにより、正しい64ビットAquaTermバイナリが正しい場所にあることが保証されます

ソース: http ://slashusr.wordpress.com/2010/01/17/gnuplot-with-aquaterm-on-osx-snow-leopard/

于 2011-10-25T22:41:23.243 に答える