wxGo   Linux Mint へのインストール

ホーム   Goチュートリアル

Linux Mint へのインストール


この章では、wxGo を Linux Mint(Ubuntu 互換)へインストールする方法を説明しています。

対象となるバージョンは、Linux Mint 18.x 19.x、Ubuntu 16.04 18.04 です。

macOS へのインストールは、はじめの一歩をご覧ください。


G++ のインストール

wxGo を使うためには、g++ の開発環境がインストールされている必要があります。

ターミナルに次のコードを入力して、g++ が、インストールされているか確認してください。インストールされていなければインストールしてください。


g++ --version
//g++ がまだインストールされていない場合は
sudo apt install g++
    


Go のインストール

Linux と Windows で wxGo を使う場合は、Go のバージョンが問題になります。Go のバージョンが 1.9.4 以上の場合は、wxGo をインストールしようとすると「無効なフラグ」というエラーが出ます。その回避法はオフィシャルページにいろいろと書かれていますが、私の場合は、どの方法も上手くいきませんでした。

以上の理由により、ここでは、Go 1.9.3 をインストールします。

次のコードで、Go がすでにインストールされているかどうか確認して、違うバージョンの Go がインストールされている場合は、その Go を削除してください。


go version
//1.9.3でなく
//手動でインストールしていた場合は
sudo rm -r /usr/local/go
//apt パッケージマネージャーでインストールしていた場合は
sudo apt remove golang-go
    

次のサイトから go 1.9.3 をダウンロードします。

Donwnloads - The Go Programming Language - Golang

一番下までスクロールして、Archived Versions をクリック

go1.9.3をクリック

go1.9.3linux-amd64.tar.gz をクリック

自動でアーカイブマネージャーが起動すると思いますので、任意の場所に展開してください。私はホームフォルダに展開しました。

ターミナルを起動して、go を展開したフォルダに移動して、次のコードを入力して go を /usr/local に移動してください。


sudo mv go /usr/local
    

次のコードを /etc/profile の末尾に追加してください。emacs などを使うと便利です。


sudo emacs /etc/profile

// /etc/profileの末尾の次のコードを追加
export PATH=$PATH:/usr/local/go/bin
    

ここで一度、Mint を再起動するか再ログインしてください。

go 1.9.3 がインストールできているかどうか確認します。


go version
go version go1.9.3 linux/amd64
    


wxGo のインストール

ターミナルに次のコードを入力してインストールします。


go get -x github.com/dontpanic92/wxGo/wx
    

インストールが終わるまでしばらく時間がかかります。

次のようなエラーが出て終了します。


/usr/bin/ld: -lgtk-3 が見つかりません
/usr/bin/ld: -lgdk-3 が見つかりません
/usr/bin/ld: -lcairo-gobject が見つかりません
/usr/bin/ld: -lwebkitgtk-3.0 が見つかりません
/usr/bin/ld: -lGL が見つかりません
/usr/bin/ld: -lGLU が見つかりません
/usr/bin/ld: -lgthread-2.0 が見つかりません
/usr/bin/ld: -lX11 が見つかりません
/usr/bin/ld: -lXxf86vm が見つかりません
/usr/bin/ld: -lSM が見つかりません
/usr/bin/ld: -lpangocairo-1.0 が見つかりません
/usr/bin/ld: -lpango-1.0 が見つかりません
/usr/bin/ld: -latk-1.0 が見つかりません
/usr/bin/ld: -lcairo が見つかりません
/usr/bin/ld: -lnotify が見つかりません
/usr/bin/ld: -lgdk_pixbuf-2.0 が見つかりません
/usr/bin/ld: -lgio-2.0 が見つかりません
/usr/bin/ld: -lgobject-2.0 が見つかりません
/usr/bin/ld: -lglib-2.0 が見つかりません
/usr/bin/ld: -lpng が見つかりません
/usr/bin/ld: -ljpeg が見つかりません
/usr/bin/ld: -ltiff が見つかりません
/usr/bin/ld: -lexpat が見つかりません
/usr/bin/ld: -lz が見つかりません
/usr/bin/ld: -lgstreamer-1.0 が見つかりません
/usr/bin/ld: -lgstvideo-1.0 が見つかりません
    

上記のライブラリが見つからないという意味です。これらのライブラリをインストールします。


sudo apt install -y libgtk-3-dev
sudo apt install -y libwebkitgtk-3.0-dev
sudo apt install -y libgl-dev
sudo apt install -y libglu-dev
sudo apt install -y libnotify-dev
sudo apt install -y libjpeg-dev
sudo apt install -y libtiff-dev
sudo apt install -y libgstreamer1.0-dev
sudo apt install -y libgstreamer-plugins-base1.0-dev
    

ライブラリのインストールが終わりましたら、wxGoをもう一度インストールしてください。


go get -x github.com/dontpanic92/wxGo/wx
    

はじめの一歩

次のコードをお好きなエディタで記述して保存してください。


main.go


package main

import "github.com/dontpanic92/wxGo/wx"

func main() {
	app 	:= wx.NewApp()
	frame	:= wx.NewFrame(wx.NullWindow, wx.ID_ANY, "Hello wxGo")
	frame	.Show()
	app	.MainLoop()
}
	


実行方法

ターミナルで、main.go を保存したディレクトリに移動して、次のコードで実行してください。


go run main.go
	


実行結果

実行結果が表示されるのに、少し時間がかかります。


ウィンドウを閉じるとアプリケーションは終了します。

ウィンドウのデフォルトサイズは、プラットフォームによって違うみたいです。多くの場合、横 400 ピクセル、縦 500 ピクセルぐらいになる場合が多いみたいです。コードを次のように変更すると、ウィンドウのサイズを変更できます


	frame	:= wx.NewFrame(wx.NullWindow, wx.ID_ANY, "Hello wxGo")
        ↓
	frame	:= wx.NewFrame(wx.NullWindow, wx.ID_ANY, "Hello wxGo", wx.DefaultPosition, wx.NewSize(400, 250))
	


コード説明


package main
    

Go のソースコードはパッケージ単位で管理します。特に意図がない限りは、最初のパッケージは main にします。


import "github.com/dontpanic92/wxGo/wx"
    

wxGo のパッケージを読み込んでいます。これによって、wxWidgets の関数などが使えるようになります。


func main() {
    

多くのプログラミング言語と同様に、Go のプログラムも main 関数から始まる決まりになっています。


	app 	:= wx.NewApp()
	

アプリケーションを作って起動します。


	frame	:= wx.NewFrame(wx.NullWindow, wx.ID_ANY, "Hello wxGo")
	
フレームを作っています。フレームとは、ウィンドウのことです。第1引数にフレームが所属するウィンドウ、第2引数にフレームの ID、第3引数にフレームに表示される文字列を指定します。

フレームじたいが、ウィンドウなので、どのウィンドウにも所属していないことをあらわす wx.NullWindow を第1引数に指定しています。第2引数に、wx.ID_ANY を指定すると一意の整数が与えられます。wx.ID_ANY の替わりに -1 と記述しても一意の整数が得られます。


	frame   .Show()
	

フレームは、作っただけでは表示されません。Show メソッドで表示されるようにします。


	app     .MainLoop()
	

アプリケーションの MainLoop メソッドを呼び出すことで、アプリケーションが継続的に起動し続けるようになります。もし MainLoop メソッドを呼び出さない場合は、アプリケーションは一瞬で終わります。


453503 visits
Posted: Jul. 24, 2019
Update: Jul. 28, 2019

ホーム   Goチュートリアル   目次