From 0e4ca910d6f8adbff6b12f21ec5c38da055d773e Mon Sep 17 00:00:00 2001 From: Li Jie Date: Tue, 18 Feb 2025 09:27:14 +0800 Subject: [PATCH] build: building multi packages outputs to temporary path --- compiler/internal/build/build.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/internal/build/build.go b/compiler/internal/build/build.go index 95d4e0ce..1236f832 100644 --- a/compiler/internal/build/build.go +++ b/compiler/internal/build/build.go @@ -375,7 +375,15 @@ func linkMainPkg(ctx *context, pkg *packages.Package, pkgs []*aPackage, linkArgs name := path.Base(pkgPath) app := conf.OutFile if app == "" { - app = filepath.Join(conf.BinPath, name+conf.AppExt) + if mode == ModeBuild && len(ctx.initial) > 1 { + // For multiple packages in ModeBuild mode, use temporary file + tmpFile, err := os.CreateTemp("", name+"*"+conf.AppExt) + check(err) + app = tmpFile.Name() + tmpFile.Close() + } else { + app = filepath.Join(conf.BinPath, name+conf.AppExt) + } } args := make([]string, 0, len(pkg.Imports)+len(linkArgs)+16) args = append(