zig-0.13.0
error: lld-link: undefined symbol: __declspec(dllimport) _CrtSetReportHook
#if debug
add link to ucrtbased
master required v1.48.0 has CONTAINING_RECORD issue.
> zig fetch --save=libuv git+https://github.com/libuv/libuv.git
CONTAINING_RECORD cause runtime INVALID INSTRUCTION
patch for src/win/req-inl.h
INLINE static uv_req_t * uv__overlapped_to_req (OVERLAPPED * overlapped ) {
// cause illegal instruction
// return CONTAINING_RECORD(overlapped, uv_req_t, u.io.overlapped);
return (uv_req_t * )((char * )overlapped - offsetof(uv_req_t , u .io .overlapped ));
}
same libuv/libuv#4254
merged 2024/08/06
error: dependency loop detected
pub const struct_uv_stream_s = extern struct {
read_cb : uv_read_cb = @import ("std" ).mem .zeroes (uv_read_cb ),
};
// 👆👇
pub const uv_read_cb = ? * const fn ([* c ]uv_stream_t , isize , [* c ]const uv_buf_t ) callconv (.C ) void ;
// workaround
pub const uv_read_cb = ? * const fn (* anyopaque , isize , [* c ]const uv_buf_t ) callconv (.C ) void ;
> zig build -l
install (default) Copy build artifacts to prefix path
uninstall Remove build artifacts from prefix path
c_helloworld Build & run c_helloworld
zig_helloworld Build & run zig_helloworld
> zig build c-helloworld