2020-06-21

【備忘録】Vala の実行

Vala は GObject を利用した C 言語のソースコードを生成する、セルフホスティングコンパイラを持つオブジェクト指向言語です。C# に似た構文を持ち、無名関数シグナルプロパティジェネリクスメモリ管理例外処理型推論、および、for-each など、C 言語にはない言語仕様を持っています。

Wikipedia より引用・編集

洋書ですが Vala の入門書を Amazon.jp で見つけました。Vala プログラミングの全体像を手っ取り早く学習しようと Kindle 対応のフォーマットのものを買いました(右図)。

少し読み進めてビックリです。Vala は valac コマンドでコンパイルして実行するものだと思いこんでいましたが、vala コマンドでそのまま実行することもできるのです。

vala コマンドでは一時的領域でコンパイルして実行しているだけなので、やっていることはvalac コマンドと結局のところ同じなのですが、使い方に違いがありますので、備忘録としてまとめました。

本ブログ記事では下記の OS 環境で動作確認をしています。

Fedora 32 (Workstation Edition) x86_64
  vala-0.48.6-1.fc32.x86_64

Hello World! を使い回します

参考サイト [1] で紹介した Hello World! のプログラムを今回も使うことにします。

hellogtk.vala
using Gtk;
 
int main (string[] args) {
    Gtk.init (ref args);
    
    var window = new Window ();
    window.title = "Hello, World!";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size(350, 70);
    window.destroy.connect (Gtk.main_quit);
    
    var label = new Label ("こんにちは、世界!");
    
    window.add (label);
    window.show_all ();
    
    Gtk.main ();
    return 0;
}

vala コマンドで hellogtk.vala をスクリプトファイルのように実行するには次のようにします。

[bitwalk@fedora-pc hellogtk]$ vala --pkg gtk+-3.0 hellogtk.vala
hellgtk.vala の実行例

hellogtk.vala の先頭に、下記のように追加すれば、実行権限を与えてファイル名で起動することもできます。

hellogtk.vala の最初の一行
#!/usr/bin/env vala
[bitwalk@fedora-pc hellogtk]$ chmod a+rx hellogtk.vala
[bitwalk@fedora-pc hellogtk]$ ./hellogtk.vala --pkg gtk+-3.0

サンプルを作って動作するか、ちょっと試したい時に重宝する機能です。

参考サイト

  1. bitWalk's: Vala を試してみた [2020-06-06]

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: