トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2024-5-29の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!Zig
環境はUbuntu 22.04.cmakeはaptでインストール済み.
https://github.com/ziglang/zig/wiki/Building-Zig-From-Source を参考に.
ただし,0.12.0のビルドにはLLVM 17.xが必要な模様.
まずは,LLVMのビルド.https://clang.llvm.org/get_started.html を参考にする.
ソースコードのリンクは https://github.com/llvm/llvm-project/releases/ から探す.
 mkdir -p $HOME/src/llvm-17
 cd $HOME/src/llvm-17
 wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/llvm-project-17.0.6.src.tar.xz
 tar xvf llvm-project-17.0.6.src.tar.xz
 cd llvm-project-17.0.6.src
 mkdir build
 cd build
 cmake -DCMAKE_INSTALL_PREFIX=$HOME/tools/llvm-17 -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld;lldb" ../llvm
 make -j24
 make install
 export PATH=$HOME/tools/llvm-17/bin:$PATH
で,zigのビルド.
 mkdir -p $HOME/src/zig
 cd $HOME/src/zig
 wget https://ziglang.org/download/0.12.0/zig-0.12.0.tar.xz
 tar xvf zig-0.12.0.tar.xz
 cd zig-0.12.0
 mkdir build
 cd build
 cmake -DCMAKE_INSTALL_PREFIX=$HOME/tools/zig-0.12.0 -DCMAKE_BUILD_TYPE=Release ..
 make
 make install
早速試してみる.https://ziglang.org/documentation/0.12.0/ にサンプルがあるので,
 cd /tmp
 cat > hello.zig
 const std = @import("std");
 
 pub fn main() !void {
     const stdout = std.io.getStdOut().writer();
     try stdout.print("Hello, {s}!\n", .{"world"});
 }
とかしてソースコードを用意して,
 export PATH=$HOME/tools/zig-0.12.0/bin/:$PATH
 zig build-exe hello.zig
 ./hello
Hello, world!が表示されたらOK.