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アプリは動作しないため注意。
コメント
コメントを投稿