19 WSL2でGUIアプリケーション, GLSCとか (当分工事中)

(工事中というか、現在このページは作業メモ・スペースみたいな感じ。)

GUIアプリが動けば、 WSL2 (Windows Subsystems for Linux 2) は仕事にかなり使えるのではないか、 と感じている。


それにしても、最初はX11なのね。X11 しぶといなあ。 まあ、それなりに役に立つように出来ているから。

アスキーが色々報告している。

何をするにも、WSL2の方を更新しておく。
sudo apt update
sudo apt upgrade

X11の定番クライアントのインストール。
sudo apt install x11-utils

DISPLAY環境変数の設定。
.bashrc
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
最後は 0.0 じゃなくていいの?とオジサンは思ったりする。

Xサーバーのインストールをどうするかは、上の ASCII の記事には書いてない。 Xwayland ってどうやって使うのかなあ。

まずは、 「WSL2+Ubuntu 20.04でGUIアプリを動かす」 に従い、Xサーバーとして、 VcXsrv を使ってみる。 インストールの仕方、というか最初の起動時にどう答えるべきかは、 「WSL2+Ubuntu 20.04でGUIアプリを動かす」 に説明されている。

Additional parameters for VcXsrvに -ac -nowgl を指定する、とのこと。

コンフィギュレーションの保存というのが出来る。 それをクリックしても起動できるらしい。 オジサンはデスクトップに保存しました。

もちろんスタートメニューにも VcXsrv が登録される。

懐かしい xeyes が起動した。 xeyes をWindowsマシンで見るのは久しぶりだなあ (Cygwin を最後に使ったのはいつだったっけ)。


GLSC をインストールしてみる

GLSCをインストールしてみよう。 そういえば、このマシンは、まだ gcc 入れてなかった。
sudo apt install gcc
sudo apt install gfortran
sudo apt install make

Cコンパイラーは、clang の方がいいのかな?後でやってみる。

「GLSC についてまとめておく (2021年版)」 に書いてあったのと同じようにやってみる。

あれ、Xlib.h がないなあ。こうかな?
sudo apt install x11-server-utils
あれ、エラーになる。
apt-cache search x11.*utils
あ、タイプミスだ。
sudo apt install x11-xserver-utils

あれ、まだ Xlib.h 見つからない。 要らないことしたか(笑)。

Xlib.h で検索したら、 Ubuntu 関係のページで libx11-dev というパッケージの名前を知る (X11 の開発環境ということかな?)。 これは WSL2 と関係ないけれど、たぶんそうだ。これでどうじゃ。
sudo apt install libx11-dev
通った。

それで GLSC のmakeだけれど、 Mac とほぼ同様にしてmake 出来た。 (CC=gcc, FC=gfortranにしたけれど、 結局のところ後者は無効だった)

test にある ctests, ctestd 動いた!動作がとても早い。

ドキドキ。ftests は?エラーになった。うーん。 やはり Fortran だめか。

これはいよいよ、デバッグしないといけないのかな。

libs/src/do_sformat.c を眺めてみる。 G_F77, G_F77_SIZE_BY_LONG, G_F77_SIZE_BY_REF というのを見て条件コンパイルしている。 文字列は本当に悩ましいね。 それにしても、そういうのを用意してある GLSC はすごいな、 と思う。 (まあ、今と違って色々なシステムが存在していた時だから、 どういうシステムでもコンパイルできるように頑張って作ったのは、 理解できる。でもその徹底ぶりに感心する、ということだ。)

libs/Makefile をみると、 -DG_F77=1 としてあるね。 G_F77_SIZE_BY_LONGG_F77_SIZE_BY_REF は定義していない。

G_F77_SIZE_BY_LONG を定義してみる。だめ。

G_F77_SIZE_BY_REF も定義してみる。だめ。

G_F77_SIZE_BY_REF だけ定義してみる。だめ。

$ 2\times 2=4$ 通り試してだめ。gccでなくて、clang にしてもだめ。

気づいてみたら、Windows 上で久しぶりにプログラムいじり。 違和感がほとんどない。 Windows Terminal いいね。 Windows 側で control+C でコピーして、 shift+control+V でペーストするのが気持ち悪いけれど。

ともあれ、当面 Fortran はあきらめる。

コンパイル・スクリプトの cglsc が動かない…あ、cshないからか。 代わりに sudo apt install tcsh して tcsh を使う。

heat1d-e-glsc.c も heat2d-i-2017.c も動く。

reidai8a-glsc.c も動くけれど、 中ボタン・クリック、 右ボタン・クリックはどうするのかな。

タッチパッドの右下をクリックで、右クリック。 二本指でクリックでも、右クリック。

タッチパッドの3本指ジェスチャの[タップ]で、[マウスの中央ボタン] とすると、中ボタンクリックだけど、うまく行かない。

Macのように何かキーを押しながら、とする方が良いかなあ。 まあ、本当に必要ならば3ボタンマウスを買えば良いのだろう。

以上。C+GLSC は問題なく使える感触だ。



桂田 祐史