人気ブログランキング | 話題のタグを見る

体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)

(2017/8/2 追記:BoW 64ビット環境で動作する実行形式をダウンロード可能にした。Linuxでも動作可)
Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)_a0034780_23412233.png
Windows Subsystem for Linux (Bash on Ubuntu on Windows) で コンソールCUIだけでなく、GUIも動作・開発出来る環境の構築をまとめておく。

[Windows用X Serverのインストール]
・VcXsrv

もちろんXmingでもよい。

[Bash on Ubuntu on Windowsでxterm系の端末をインストール]
・lxterminal

apt-get install lxterminal
※P.S.でWindows上で端末を用意する方法を追記。ただしCreators UpdateではBashがマルチバイトにきちんと対応しているので特にlxterminalやわざわざmsys2を立ち上げる必要はなくなった。Bashを複数起動すればよい。

[エディタ・コンパイラ]
・vi/vim/gvim
・gcc,g++

もちろんEmacs系でもいい。g++はなくてもOK。

[日本語関係]
・uim-fep
・日本語フォント(lxterminal設定-takao ゴシック)
・nkf
・LANG=ja_JP.UTF-8 定義

[X Window System開発環境]
・xserver-xorg
・xorg-dev

これだけ入れておけばとりあえずOK。
詳しくは前記事のx-windowカテゴリで。

これだけ入れて次のxlibのサイト様のソースをコンパイル。
X アプリケーション工房 Xlib 編 (2) - 68user's page

xlib-2.cをダウンロード。
(ダウンロードもfirefoxをインストールしてX Window上で行うのが簡単)

これはソースに#include <string.h>の追加が必要。
コンパイル方法もサイト様の通り、cc xlib-2.c -o xlib-2 -lX11 -I /usr/X11R6/include -L /usr/X11R6/lib
実行後、マウス左ボタン押下の様子。
xlib-2
Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)_a0034780_22571911.png
xlib-3.cの場合はソースの日本語コメントが化けるので、
cat xlib-3.c | nkf -w > xlib-3u.c
でUTF-8に変換。
実行後の様子。
xlib-3
Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)_a0034780_23085462.png
この通りマウスで描画も可能。

xlib-4-1.cは変更なし。
実行結果。
xlib-4-1
Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)_a0034780_23114185.png
Pixmap関数で画像イメージの転送を繰り返し、円が横移動しているように見える。

xlib-4-2.cはサイト様のX アプリケーション工房トップページから取得。
ちらつかないとあるが、今のPCでは速すぎて逆にわからない。
xlib-4-2

大体これでOKだが、音だけはまだsoundデバイスへのアクセスがよくわかっていない。たぶんioctrl関数の辺りはwindowsとの間でまだ鬼門のような気がする。deamon errorがfirefoxで出てるし。

Ubuntu Desktopマネージャを動かすと、せっかくのマルチウィンドウがルートウィンドウ上の子ウィンドウになってしまうので今のままのVcXsrvの設定でHide Root WindowにしてDesktopマネージャは動かさないでおく(以前は別アプリXsvr Launcherだったが、バージョン1.19.2.0 64bitではタスクトレイアイコンのカスケードメニューにある)。

今のデスクトップはこんな感じ。昔もこんな風にtwmで、縦長のvi用端末とコンパクトなコンパイル・実行用端末を開いていた。
Windows Creators Update で Xlib-GUI開発 - Bash on Ubuntu on Windows (8/1)_a0034780_23342246.png
上記のダウンロードできるファイルは、Linux elf形式 64bit 版 実行ファイル。なのでBoW 32ビット環境では動かないかも。スタティックリンクでないので、xserver-xorgでインストールされるライブラリが最低でも必要かも。
またstripしてないので実行ファイルのシンボルは見れる。
readelf -s オブジェクトファイル

P.S.
lxterminalなどのLinuxの端末が使いづらいと感じるWindowsユーザは次のサイト様からBashを動かすWindowsアプリをインストールするといい。


by k1segawa | 2017-08-01 23:14 | X-Window | Comments(0)

by k1segawa