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アプリは動作しないため注意。