4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSLでGLUT&glpng ~Test.cの実行まで~

Last updated at Posted at 2018-11-01

Cygwin(rebase問題)で困っているクラスメートが多かったので, Windows10でWSLを使ってGLUT&glpngを使ったプログラムを動かす方法をまとめてみました.
(あくまで もろもろの事情で gcc/makeといったCLIベースでやらざるをえない時の方法です.VisualStudio等のIDEを用いた方法も可能ですが,この記事では触れません.)

WSLとは

Windows Subsystem for Linuxの略称. Windowsのカーネル上でLinuxディストリビューションを動かすためのサブシステム.
詳細はGoogle先生に聞いて下さい.

前提条件

  • Windows10 Fall Creators Update(ver:1709)以降の64bit Windows10

WSLにインストールするLinuxディストリビューションはUbuntu18.04 LTSとします.

検証環境

  • 環境1:ネイティブWindows10マシン

    • CPU:Intel core i7-7700HQ
    • Windows10 Home var:1803 build:17134.285
  • 環境2:macOS上のWindows10仮想マシン

    • CPU:Intel core i7-7567U
    • ホストOS:macOS High Sierra 10.13.6
    • 仮想化ソフトウェア:Oracle VirtualBox var:5.2.12 r122591
    • ゲストOS:Windows10 Education var:1803 build:17314.286

2019/11/20 いつまで経っても追加されなかった環境2と3を削除,環境4を環境2に変更

下準備

まずはUbuntuが使えるようにします.

WSLのインストール

  1. Windowsの設定を開く(ウィンドウを最大化することをお勧めします)
  2. アプリへ移動
  3. アプリと機能→関連設定からプログラムと機能を選択
  4. 開いたウィンドウからWindowsの機能の有効化または無効化を選択
  5. Windows Subsystem for Linuxのチェックボックスをオン
    WSL_active.PNG
  6. OKを押して進める
  7. 再起動を求められるので, 再起動を行う.

以上でWSLのインストールが終わりです. 次はUbuntuのインストールです.

Ubuntuのインストール

  1. Microsoft Storeを開く
    microsoftstore.PNG
  2. Ubuntuと検索
    store_search.PNG
  3. Ubuntu 18.04 LTSを選択
    ubuntu.PNG
  4. 入手をクリック
  5. Microsoftアカウントへログインして~と言われたら必要ありませんを選択
  6. 起動をクリック
  7. Installing, this may take a few minutes...と言われるので言われた通り待つ.
  8. ユーザ名(Windowsと同じにする必要無し), ログインパスワードを設定
  9. プロンプトが帰って来たらOK.

以上でUbuntuのインストールが終わりです. 次はパッケージのインストールです.

パッケージのインストール

$はプロンプトを示すものです.入力の必要はありません.

  1. $sudo apt updateを実行
  2. $sudo apt install gcc make emacs unzipを実行

ひとまずこれで下準備が終了です. 次はGUIベースのLinuxアプリケーションが動かせるようにします.

X Windowの設定

Ubuntu上で実行したGUIアプリケーションがWindows上に表示されるようにします.
Ubuntu 18.04のWSL上へのインストールと初期設定:X Windowの起動(Windows側からLinuxソフトウェアを別画面表示する)を参考に行いました.

VcXsrvのインストール

  1. ここからVcXsrvをダウンロードします.
  2. なにも変えずにNextをクリック

vsxsrv_1.PNG
3. インストール場所を変える場合は変えてNextをクリック

vsxsrv_2.PNG
4. Closeをクリック

vsxsrv_3.PNG

これでインストールが終了です.
Windowsのユーザ名が全角文字の場合,Ubuntu 18.04のWSL上へのインストールと初期設定:トラブルシューティング:Windowsのユーザ名が日本語の場合(2バイト文字を使っている場合)を参考に追加の作業を行って下さい.

VcXsrvの起動

  1. DesctopにXLaunchというショートカットが出来ているので,それをクリックします.

xlancher.PNG
2. Multiple Windowsを選択し,次へをクリック

vsxsrv_l1.PNG
3. Start no cliantを選択し,次へをクリック

vsxsrv_l2.PNG
4. そのまま次へをクリック

vsxsrv_l3.PNG

(2018/11/13追記:GLUT_RGBAで色を指定する場合,Native openglのチェックを外さないと色が出ない場合があります.色が出ない場合は,チェックを外して下さい.)
5. 完了をクリック
vsxsrv_l4.PNG
6. Windowsファイアウォールのウィンドウ(下図のようなウィンドウ)が出た場合,キャンセルをクリック
firewall.PNG

Ubuntu側の設定

  1. $sudo apt install x11-apps x11-utils x11-xserver-utils dbus-x11を実行.
  2. $cdしてホームディレクトリに戻る
  3. $echo 'export DISPLAY=localhost:0.0' >> ~/.bash_profileを実行
  4. $source ~/.bash_profileを実行
  5. $xeyes &を実行して下図のように表示されれば成功.
    xeyes.PNG

以上でX Windowの設定は完了です.次はGLUTとglpngをインストールします.

GLUT&glpngのインストール

GLUTとglpngをインストールします.
glpngはaptのリポジトリから削除されているため,自分でビルド(make)する必要があります.
森北出版株式会社刊 Springs of C サポートページの9番を参考に行いました.

GLUTのインストール

  1. $sudo apt install freeglut3-devを実行

glpngのビルド→インストール

  1. $mkdir tmpで作業用ディレクトリを作成
  2. 作成したディレクトリへ移動
  3. $wget ftp://ftp.usa.openbsd.org/pub/OpenBSD/distfiles/glpng-1.45/glpng.zipを実行
  4. $unzip glpng.zipを実行
  5. src/へ移動
  6. $make -f Makefile.LINUXを実行(warningが大量に出ますが成功はします)
  7. ../lib/へ移動
  8. libglpng.a/usr/lib/へコピー(sudoが必要です)
  9. ../include/GLへ移動
  10. glpng.h/usr/include/GL/へコピー(sudoが必要です)

以上でGLUT/glpngのインストールは完了です.次は動作確認を行います.

2019/9/24 追記 手順3で取得しているwget先のアドレスが切れているようです. http://mirrors.nycbug.org/pub/distfiles/ なら生きてる?

2021/6/01 追記 上の追記のリンクも切れていた…(distfilesまでは存在するがそこにglpng.zipが存在しない) Springs of Cのサポートページしか生きているリンクを確認できていません.これ以外で確認できた方は御一報下さい.

動作確認

glpngについてくるExampleをコンパイルして,GLUTとglpngが正常にインストールできているかを確認します.
森北出版株式会社刊 Springs of C サポートページの16番を参考にTest.cを編集しました.

  1. ~/tmp/Example/へ移動
  2. Test.cを編集する($emacs Test.c &など)
    3. 9行目と10行目(#include <gl/glpng.h>#include <gl/glut.h>を入れ替える
    4. 入れ替えた各行に対して,glGLに置き替える.
    5. 67行目のmain関数の返り値を,voidからintに置き替える.
    6. main関数の引数にint argc, char** argvを追加する.
    7. 70行目の空行の後に,glutInit(&argc, argv);を追加する.
    8. 保存して終了(emacsならC-x C-sで保存,C-x C-cで終了)
  3. $gcc -Wall -o Test Test.c -lglpng -lglut -lGLU -lGL -lmを実行
  4. 何も出なければコンパイル終了.
  5. $./TestでWindows側に下図のように表示されれば成功.(実際はくるくる回ってます)
    test.PNG

以上で本題は終了です.

Windows再起動後にすること

Windowsを再起動した後は,VcXsrvを立ち上げ直す必要があります.VcXsrvのインストールを参考にVcXsrvを起動してください.

Windows側のディレクトリにアクセスする方法

Windows側のディレクトリ(Cドライブ内のディレクトリなど)にアクセスしたい場合,
/mnt/c/Users/YourName/...
へ移動するとアクセス出来ます.

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?