wxWidgets のインストール(Ubuntu 上)
URL: https://www.wxwidgets.org/
ソフトウェア等の利用条件は,利用者自身で確認下さい.
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行
# sudo shutdown -r now
C/C++ コンパイラー,make,パッケージツール,GTK 開発用ファイルのインストール
端末で,次のコマンドを実行する.
Ubuntu 上の wxWidgets は GTK を用いて画面を描画するため,GTK の開発用ファイルが必要である.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
sudo apt -y install libgtk-3-dev
sudo apt -y install curl
wxWidgets のインストール(ソースコードを使用)(Ubuntu 上)
◆ Ubuntu での操作手順例
- wxWidgets の Web ページを開き,wxWidgets の利用条件と,最新の安定版(stable release)のバージョン番号を確認する.
https://www.wxwidgets.org/downloads/
以下では,安定版の 3.2.11 を用いる場合を示す.別のバージョンを使うときは,コマンド中のバージョン番号を読み替える.
- ダウンロードと展開
GitHub のリリースページの URL はリダイレクトされるため,curl には -L を付ける.
cd /tmp rm -rf wxWidgets-3.2.11 curl -L -O https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.11/wxWidgets-3.2.11.tar.bz2 tar -xjf wxWidgets-3.2.11.tar.bz2 - ビルドとインストール
インストール先は /usr/local である.
cd /tmp/wxWidgets-3.2.11 ./configure --with-gtk=3 --prefix=/usr/local make -j$(nproc) sudo make install - 共有ライブラリの検索パスの設定
wxWidgets の共有ライブラリは /usr/local/lib にインストールされる.実行時にライブラリが見つかるように,検索パスに追加して,キャッシュを更新する.
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usr-local-lib.conf sudo ldconfig - 動作テスト
付属のサンプル minimal をビルドし,実行する.ウインドウが表示されれば,インストールは成功している.
cd /tmp/wxWidgets-3.2.11/samples/minimal make ./minimal
サンプルプログラム
wxWidgets の wxApp, wxFrame, wxMenu, wxMenuBar を使用したプログラムである. アプリケーションの本体は wxApp の派生クラスであり,wxIMPLEMENT_APP マクロによってエントリーポイントが生成される. ウインドウの表示開始は OnInit で行う.
#include <wx/wx.h>
// メインウインドウ
class MyFrame : public wxFrame
{
public:
MyFrame()
: wxFrame(nullptr, wxID_ANY, "Window Title",
wxPoint(480, 480), wxSize(320, 200))
{
wxMenu *menuFile = new wxMenu;
menuFile->Append(wxID_EXIT);
wxMenuBar *menuBar = new wxMenuBar;
menuBar->Append(menuFile, "&File");
SetMenuBar(menuBar);
Bind(wxEVT_MENU, [this](wxCommandEvent&) { Close(true); }, wxID_EXIT);
}
};
// アプリケーション
class MyApp : public wxApp
{
public:
// この関数がアプリケーションのスタートポイント
bool OnInit() override
{
MyFrame *frame = new MyFrame();
frame->Show(true);
return true;
}
};
wxIMPLEMENT_APP(MyApp);
上のプログラムを minimal.cpp として保存したとき,コンパイルと実行は次のように行う. コンパイルオプションとリンクオプションは wx-config が出力する.
g++ minimal.cpp `wx-config --cxxflags --libs` -o minimal
./minimal