「wxWidgetsを初期化できません」エラーが発生した後にコアダンプが発生する

「wxWidgetsを初期化できません」エラーが発生した後にコアダンプが発生する

私はSolarisでいくつかのソフトウェアをテストしています。コンピュータはSunOS 5.11(Solaris 11.3)を実行しており、SSH経由で接続します。ソフトウェアはベンチマークを実行し、データポイントを表示します。

makefileは次のことを行います。

$(CC) $(FILES) $(CFLAGS) ../sse/blake2b.c -o blake2b
$(CC) $(FILES) $(CFLAGS) ../sse/blake2s.c -o blake2s
$(CC) $(FILES) $(CFLAGS) md5.c -o md5  -lcrypto -lz
./blake2b > blake2b.data
./blake2s > blake2s.data
./md5 > md5.data
gnuplot do.gplot

ランタイム時の様子は次のとおりです。

gnuplot do.gplot
Failed to initialize wxWidgets.
*** Signal 11 - core dumped

do.plotを見つけることができますGitHubから。set terminal pngのようなトリックを試してもset terminal jpg役に立ちません。

私の環境には設定されていませんが、DISPLAY次のように設定されていますTERM

$ printenv | egrep -i '(term|display)'
TERM=xterm-256color

-vより多くの情報を収集する試みを追加しますCannot open load file '-v'

何が間違っているのか知っている人がいますかgnuplot?それとも、プログラムにコアダンプ以外のタスク(死ぬ前に詳細を印刷するなど)を実行させる方法を知っている人はいますか?


gnuplotpkg install gnuplot.

$ gnuplot --version
gnuplot 4.6 patchlevel 0

答え1

問題は、do.gplotPDFファイル(plotcycles.pdf)が最終的に作成されますが、最初にデフォルトの出力デバイス(おそらくwxt)にプロットしてからターミナルタイプをに設定し、コマンドをpdfcairo実行して作成されることです。replot

デフォルトの端末タイプをオーバーライドする方法はいくつかあります。

  • たとえば、gnuplotコマンドラインから

    gnuplot -e 'set term dumb' do.gplot
    

    (「愚かな」ASCII端末 - SSH端末から表形式の表示を生成します。)または

    gnuplot -e 'set term unknown' do.gplot
    

    set termコマンドはで識別されますUnknown terminal type - not a plotting device

  • GNUTERM空の環境変数を設定して

    GNUTERM= gnuplot do.gplot
    

    このマニュアルでは、次のように説明しています。

    GNUTERM
      The  name  of  the  terminal type to be used by default. This can be  
      overridden by the gnuplotrc or .gnuplot start-up files and, of course, 
      by later explicit "set terminal" commands.
    

あなたの場合、gnuplotはMakefileを介して呼び出されるので、このGNUTERM変数はコマンドライン変数ですmake

関連情報