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