环境: ubuntu 22.04 zig 0.10

首先打开终端, 建立zig exe项目:

mkdir libtest zig init-exe 

项目结构如下:

├── build.zig└── src    ├── main.zig    └── mylib        └── math.zig
  1. 导入自定义api
    打开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"});}

使用zig build run 编译运行
如编译无错误,则看到输出 All your codebase are belong to us.

在libtest目录下新建目录mylib, 同时添加自定义api文件math.zig内容如下:

pub fn add(a: u32, b:u32) u32 {    return a + b;}

注意fn之前必须添加pub 否则该函数将无法导出被调用
在main.zig中添加调用代码如下:

const std = @import("std");const math = @import("../mylib/math.zig");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"});    var ret = math.add(2 ,3);    std.debug.print("ret: {d}\n", .{ret});}

再次使用zig build run编译运行,出现错误
error: import of file outside package path: ‘../mylib/math.zig’
提示导入的文件超出了包的路径范围, 把mylib移动至src目录下,新的项目结构如下:

├── build.zig└── src    ├── main.zig    └── mylib        └── math.zig

再次编译运行

All your codebase are belong to us.ret: 5

自定义api运行成功。