WSL1上でguplotを動作させようとした際に生じたQtのエラー

WSL1上でguplotを動作させようとした際に生じたQtのエラー

WSLでgnuplotを使うために、適当に sudo apt install gnuplot-qt としてQt版のgnuplotをインストールした。
これでOKと思って動作させると以下のエラー。

> gnuplot
gnuplot: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

なぜだか Qt のライブラリが見つけられないらしい。
こちらの記事を参照すると、以下のコマンドで解消できるようだ。

sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

/usr/lib/x86_64-linux-gnu/libQt5Core.so.5 のところは環境やバージョンにより異なる可能性があるため、実行時に要確認。

本コマンドについてあまり説明が見受けられなかったので、少し調べた。本コマンドは対象のバイナリファイルの中身から一部を削除するコマンド。

バイナリファイルの形式はよく理解はしていないが、一般的にELF (Executable and Linkable format)という形式で構成されており、実行プログラム本体とは別にある種のメタデータが格納されている箇所がある。このメタデータの .note.ABI-tag という個所を削除しているのがこのコマンドだ。実際のELF形式実行ファイルがどのような形式をしているかなどは Linux であれば readelf などのコマンドで見ることができる。

このセクションでどういったアーキテクチャのプラットフォームで動作できるかなど記述されているようだ。ここの記述がWSL1と相性が悪いらしい。(参考)

また、これとは別にX ServerをインストールしなければLinux側のGUIアプリは動作しないため注意。

コメント

このブログの人気の投稿

gnuplot: グラフの色を変更する

[Linux] rsyncで進捗を確認する

gnuplotで縦線を引きたい