@@ -135,7 +135,7 @@ fn configureModule(
135135) void {
136136 mod .addImport ("miniaudio" , miniaudio_mod );
137137 addMiniaudioCSources (b , mod );
138- linkPlatformLibs (mod , target );
138+ linkPlatformLibs (b , mod , target );
139139}
140140
141141/// 创建并注册模块级测试。
@@ -163,7 +163,7 @@ fn addModuleTest(
163163 for (imports ) | imp | {
164164 t .root_module .addImport (imp [0 ], imp [1 ]);
165165 }
166- linkPlatformLibs (t .root_module , target );
166+ linkPlatformLibs (b , t .root_module , target );
167167 test_step .dependOn (& b .addRunArtifact (t ).step );
168168}
169169
@@ -197,7 +197,7 @@ fn addMiniaudioCSources(b: *std.Build, mod: *std.Build.Module) void {
197197/// - CoreAudio:核心音频服务
198198/// - AudioToolbox:高级音频工具箱(编解码、格式转换等)
199199/// - CoreFoundation:基础框架,提供数据类型和运行时支持
200- fn linkPlatformLibs (mod : * std.Build.Module , target : std.Build.ResolvedTarget ) void {
200+ fn linkPlatformLibs (b : * std.Build , mod : * std.Build.Module , target : std.Build.ResolvedTarget ) void {
201201 switch (target .result .os .tag ) {
202202 .linux = > {
203203 mod .linkSystemLibrary ("pthread" , .{});
@@ -210,6 +210,14 @@ fn linkPlatformLibs(mod: *std.Build.Module, target: std.Build.ResolvedTarget) vo
210210 mod .linkSystemLibrary ("uuid" , .{});
211211 },
212212 .macos = > {
213+ // 显式添加 macOS SDK 框架搜索路径。
214+ // Zig 的 linkFramework 在某些环境(如 CI)下无法自动定位 SDK,
215+ // 需要通过 getSdk 获取路径后手动添加搜索路径。
216+ if (std .zig .system .darwin .getSdk (b .allocator , b .graph .io , & target .result )) | sdk | {
217+ mod .addFrameworkPath (.{ .cwd_relative = b .pathJoin (&.{ sdk , "System/Library/Frameworks" }) });
218+ mod .addSystemIncludePath (.{ .cwd_relative = b .pathJoin (&.{ sdk , "usr/include" }) });
219+ mod .addLibraryPath (.{ .cwd_relative = b .pathJoin (&.{ sdk , "usr/lib" }) });
220+ }
213221 mod .linkFramework ("CoreAudio" , .{});
214222 mod .linkFramework ("AudioToolbox" , .{});
215223 mod .linkFramework ("CoreFoundation" , .{});
0 commit comments