ZigをUbuntuにインストールする際の手順をメモしておきます。
目次
手順
手順はこのあたりを参考にしました。
1. バイナリをダウンロード
こちらより。
zig-linux-x86_64-0.10.0-dev.3685+dae7aeb33.tar.xz
2. パスを通す
1でダウンロードしてきたバイナリを展開し、パスを通します。
展開先は任意です。
~/.bashrc
# zig export ZIG_HOME="/mnt/c/tools/Zig/zig-linux-x86_64-0.10.0-dev.3685+dae7aeb33" export PATH="$ZIG_HOME:$PATH"
~/.bashrc
追記して保存し再読み込みします。
再読み込み
$ source ~/.bashrc
3. Zigを実行
任意のディレクトリへ移動し、zig init-exe
を実行します。
$ mkdir hello-world $ cd hello-world $ zig init-exe
すると、こんな出力が行われます。
info: Created build.zig info: Created src/main.zig info: Next, try `zig build --help` or `zig build run`
src
ディレクトリが作成され、その中にmain.zig
というファイルが生成されます。
main.zig
const std = @import("std"); pub fn main() !void { // Prints to stderr (it's a shortcut based on `std.io.getStdErr()`) std.debug.print("All your {s} are belong to us.\n", .{"codebase"}); // stdout is for the actual output of your application, for example if you // are implementing gzip, then only the compressed bytes should be sent to // stdout, not any debugging messages. const stdout_file = std.io.getStdOut().writer(); var bw = std.io.bufferedWriter(stdout_file); const stdout = bw.writer(); try stdout.print("Run `zig build test` to run the tests.\n", .{}); try bw.flush(); // don't forget to flush! } test "simple test" { var list = std.ArrayList(i32).init(std.testing.allocator); defer list.deinit(); // try commenting this out and see if zig detects the memory leak! try list.append(42); try std.testing.expectEqual(@as(i32, 42), list.pop()); }
実行するには、zig build run
とするようです。
$ zig build run All your codebase are belong to us. Run `zig build test` to run the tests.
ちなみに、zig-out/bin
というディレクトリにバイナリファイルが出来ているので、直接実行することも可能です。
$ cd zig-out/bin $ ./hello-world All your codebase are belong to us. Run `zig build test` to run the tests.