This is probably due to a mismatched C++ stdlib, as both gcc and clang will build against libstdc++ by default, but zig c++ and the buildsystem will use the bundled libc++ by default which produces different symbol names.
If this is the case, the easiest solution is to rebuild ROOT against libc++ using the -stdlib=libc++ flag (or ideally you would use zig c++ instead of clang). Alternatively, you could try setting appropriate flags for zig to use the system libstdc++ instead of libc++ (this thread might be helpful, although last I tried I couldn’t get it to work and build my project
)