LoginSignup
11
3

More than 5 years have passed since last update.

CentOS7にwxHaskellをインストール

Last updated at Posted at 2019-01-28

CentOS 7にwxHaskellをインストールしました。
インストールに際してインストールの仕方をGoogleで色々と検索したのですが、あまり参考になる記事がなかったので作成しました。

wxHaskellとは

wxHaskellはHaskell用の移植性のあるネイティブのGUIライブラリです。このプロジェクトの目的は、Haskell用に産業用強度のGUIライブラリを提供することですが、自分で開発(および保守)するという負担はありません。

したがって、wxHaskellはwxWidgetsの上に構築されています。これは、すべての主要なGUIプラットフォーム間で移植可能な包括的なC++ライブラリです。GTK、Windows、X11、およびMacOS Xを含みます。さらに、ネイティブのルックアンドフィールを備えた幅広いウィジェットをサポートする成熟したライブラリ(1992年以来開発中)です。

wxHaskellの現在のバージョンはwxWidgets 2.9と3.0をサポートします。wxWidgets 3.0では、WindowsユーザはwxInstallパッケージを使ってwxHaskellと一緒にwxWidgetsを簡単にインストールすることができます。

公式サイト自動翻訳より

インストールしたPC環境

OS: CentOS 7 64bit
Cabal: 2.2.0.1

公式サイト

https://wiki.haskell.org/WxHaskell

インストール

まずソースをダウンロードしますが、ここではダウンロード用のフォルダを作成して実行しています。

mkdir tmp
cd tmp
mkdir wxHaskell
cd wxHaskell

ソースのダウンロード

cabal unpack wx wxcore wxdirect wxc

実行すると下記フォルダが作成されます。

[apo@localhost wxHaskell]$ ls -la
drwxrwxr-x. 3 apo apo 69  1月 28 08:36 wx-0.92.3.0
drwxrwxr-x. 3 apo apo 65  1月 28 08:36 wxc-0.92.3.0
drwxrwxr-x. 3 apo apo 68  1月 28 08:36 wxcore-0.92.3.0
drwxrwxr-x. 3 apo apo 70  1月 28 08:36 wxdirect-0.92.3.0
[apo@localhost wxHaskell]$

それぞれのフォルダに入り、cabal installを実行します。
公式サイトでは下記順序となっています。

  1. wxdirect
  2. wxc
  3. wxcore
  4. wx

wxdirectのインストール

cd wxdirect-0.92.3.0
cabal install

次はwxcをインストールするのですが、その前にwxGTK3をインストールします。

sudo yum --enablerepo=epel install wxGTK3-devel

PATHを設定します。
「~/.bash_profile」ファイルに下記パスを追加します。

PATH=/usr/libexec/wxGTK3:$PATH

追加したPATHを有効にします。

source ~/.bash_profile

wxcをインストールします。

cd ..
cd wxc-0.92.3.0
cabal install

wxcoreをインストールします。

cd ..
cd wxcore-0.92.3.0
cabal install

wxをインストールします。

cd ..
cd wx-0.92.3.0
cabal install

インストールは以上です。

HelloWorld

wxHaskellを使ってHelloWorldしてみます。
サンプルが公式サイトGitリポジトリーに含まれておりますので、リポジトリーをクローンします。
サンプルをダウンロードするフォルダを作成してダウンロードします。

上記で作成したtmpフォルダまで移動しておきます。

mkdir wxHaskell_sample
cd wxHaskell_sample
git clone https://github.com/wxHaskell/wxHaskell.git

wxHaskell_sampleフォルダの配下にwxHaskellフォルダが作成されます。
またその中のsamples/wxというフォルダにサンプルファイルが入っています。

cd wxHaskell
cd samples
cd wx
ls -la
[apo@localhost wx]$ ls -la
合計 152
drwxrwxr-x. 3 apo apo  4096  1月 28 10:16 .
drwxrwxr-x. 6 apo apo    57  1月 28 10:02 ..
-rw-rw-r--. 1 apo apo  2809  1月 28 10:02 BouncingBalls.hs
-rw-rw-r--. 1 apo apo  1515  1月 28 10:02 ByeDemo.hs
-rw-rw-r--. 1 apo apo    90  1月 28 10:02 ChangeLog.md
-rw-rw-r--. 1 apo apo  5198  1月 28 10:02 Controls.hs
-rw-rw-r--. 1 apo apo  2188  1月 28 10:02 CustomControl.hs
-rw-rw-r--. 1 apo apo  9342  1月 28 10:02 FileBrowse.hs
-rw-rw-r--. 1 apo apo  3504  1月 28 10:02 Grid.hs
-rw-rw-r--. 1 apo apo  1972  1月 28 10:06 HelloWorld.hi
-rw-rw-r--. 1 apo apo  1001  1月 28 10:02 HelloWorld.hs
-rw-rw-r--. 1 apo apo 16864  1月 28 10:06 HelloWorld.o
-rw-rw-r--. 1 apo apo  4728  1月 28 10:02 ImageViewer.hs
-rw-rw-r--. 1 apo apo  1485  1月 28 10:02 LICENSE.txt
-rw-rw-r--. 1 apo apo  1156  1月 28 10:02 Layout.hs
-rw-rw-r--. 1 apo apo  2905  1月 28 10:02 ListCtrl.hs
-rw-rw-r--. 1 apo apo   614  1月 28 10:02 ListView.hs
-rw-rw-r--. 1 apo apo   153  1月 28 10:02 Minimal.hs
-rw-rw-r--. 1 apo apo  1116  1月 28 10:02 Paint.hs
-rw-rw-r--. 1 apo apo  2148  1月 28 10:02 Print.hs
-rw-rw-r--. 1 apo apo  2164  1月 28 10:02 Process.hs
-rw-rw-r--. 1 apo apo  3025  1月 28 10:02 PropertyGrid.hs
-rw-rw-r--. 1 apo apo  1403  1月 28 10:02 TestTaskBarIcon.hs
-rw-rw-r--. 1 apo apo  5333  1月 28 10:02 TimeFlows.hs
-rw-rw-r--. 1 apo apo  9514  1月 28 10:02 TimeFlowsEx.hs
drwxrwxr-x. 2 apo apo   187  1月 28 10:02 bitmaps
-rw-rw-r--. 1 apo apo   563  1月 28 10:02 makefile
-rw-rw-r--. 1 apo apo  4857  1月 28 10:02 samplesWx.cabal

HelloWorld.hsをコンパイルして実行してみます。

ghc HelloWorld.hs 

HelloWorldという実行ファイルができていますので、実行します。

./HelloWorld

下記画面が現れます。
pic1.png

以上です。

11
3
3

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
11
3