خروجی پروژه golang در ویندوز برای سرور لینوکس

8/9/2024 Go(golang)
139

از پروژه ها ی گولنگ  روی سیستم عامل ویندوز برای استفاده در لینوکس سرور خروجی میخواستم 

go env GOOS GOARCH

$env:GOOS = "linux"
$env:GOARCH = "amd64"

go env GOOS GOARCH

این دستورات رو در ترمینال ویژال استادیو وارد میکنیم 

دقت کنید برای من استفاده از حرف $ لازم بود اگر اضافه نمیکردم محیط برای خروجی برای لینوکس اماده نمیشد

go build -o d:\go\devex ./cmd/web/main.go

و دستور کپی برای ارسال به سرور لینوکس

 scp d:/go/* root@112.225.210.110:/var/www/devex

در سرور لینوکس در ادرس فایل خروجی 

chmod +x devex

و برای اجرا 

sudo ./devex

اگر خطای زیر را دیدید

./frig: 1: MZ����@���: not found
./frig: 4: Syntax error: word unexpected (expecting ")")

به این معنی است که کد شما احتمالا برای windows ساخته شده است 

در ادرس فایل این دستور را اجرا کنید 

file devex

اگر خروجی فرمان بالا 

frig: PE32+ executable (console) x86-64, for MS Windows

بود بعنی فایل برای ویندوز ساخته شده است , و اگر برای لینوکس ساخته شده باشد مانند خروجی زیر خواهید داشت

frig: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=qiqxyfVDxhfehDLkwhsT/GUr3pAxEXMp0GrASHNLY/9gsfpOIG7LmiPcsxpB9i/CuHWXkscu81DL0oT2iO0, with debug_info, not stripped