کامپایلرایی که میان اینکارو میکنن معمولا تو هر سیستم عامل برای همون سیستم عامل کامپایل میکنند و بعدی از build فایلی که ساخته میشه صرفا رو همون سیستم عامل اجرا میشه !
مثلا اگر شما روی لینوکس برای یک کد گو لنگ بیلد بگیرید فقط رو همون لینوکس و همون معماری سیستمتون اجرا میشه!
حالا گاهی پیش میاد که ما میخوایم روی لینوکس برای ویندوز بیلد بگیریم یا حتی مک🤓
تو زبان گو لنگ به این صورت عمل میکنیم:
کامند برای بیلد گرفتن ساده:
go build main.go
حالا فرضا میخوایم برای ویندوز بیلد بگیریم:
env GOOS=windows go build main.go
اگر معماری سیستم رو هم میخواید تعیین کنید به این صورت:
env GOOS=windows GOARCH=amd64 go build main.go
اینم یه نمونه کد دیگه که اگه خواستیم برای مک بیلد بگیریم:
env GOOS=darwin GOARCH=amd64 go build main.go
و اگه اطلاعات کامل ترین در این مورد نیاز داشتید میتونید لینک پایین رو یه نگاه بندازید:
https://www.digitalocean.com/community/tutorials/building-go-applications-for-different-operating-systems-and-architectures