ساختار ساختمان کامل زبان Go و کامپایلر gccgo
درکی از نصب زبان Go
هنگام نصب زبان Go ابزارهای دستورات Go ، پکیج های استاندارد Go و کامپایلر GCCGO استخراج و نصب می شود.
GOROOT چیست؟
GOROOT یک variable است که زمان نصب Go بصورت اتوماتیک با مسیری که زبان Go را نصب کرده ایم ست می شود.
در واقع GOROOT یک متغیرِ محیطی است که موقع نصب زبان Go بصورت اتوماتیک در مسیر نصب Go ذخیره می شود.
GOPATH چیست؟
GOPATH یک variable است که خودمان آن را در پوشه workspace ست می کنیم.
در واقع GOPATH نیز یک متغیرِ محیطی است که خودمان مسیر workspace را در GOPATH ست می کنیم.
Workspace چیست؟
خود گو نیاز داره که یک workspace وجود داشته باشه که ساختار workspace میتونه اینجوری باشه.
اگه یادتون باشه موقع نصب یه دایرکتوری gocode درست کردیم و سه تا ساب دایرکتوری bin و pkg و src ساختیم.
داخل هر کدوم فایل های binary و فایل های object package و فایل های source بود.
برای اینکه بیشتر متوجه بشید توی این عکسی که داخل سایت گولنگ هم گذاشته شده به این صورت که ما فایل های executable مون ینی فایل هایی که ما آخر سر کدهامونو نوشتیم و کامپایل کردیم یعنی از کامندِ go install استفاده کردیم بصورت اتوماتیک کامندِ executable رو میاد داخل پوشه bin میسازه.
در دایرکتوری src هم ما میتونیم مخازن های خودمون رو داشته باشیم و داخل اون کدهامون رو نگه داری کنیم که شامل پکیج های third party هم میشه.
در آخر کامپایلر یه سری کد کامپایل می کنه توی ساب دایرکتوری پکیج که import هستند.
gccgo چیست؟
gccgo یک کامپایلر برای زبان Go است.
در واقع کامپایلر Go یک صفحه جدید از کامپایلر gcc است.
gcc یک کامپایلر مخصوص C است.
gccgo به عبارتی یک صفحه جدید از gcc به آن اضافه شده است که این کامپایلر را ایجاد می کند. اما خود gcc دارای مجوز منحصر به فرد خودش یعنی مجوز BSD-style license هست که تحت پوشش GPL یا همان General Public License می باشد.
نصب کامپایلر gccgo
gccgo بصورت خودکار نصب می شود ولی اگر بخواهید به دلایل مختلفی از ورژن های قبلی آن استفاده کنید و یا به تنهایی فقط از gccgo استفاده کنید، شما میتوانید به آدرس زیر بروید و فایل های باینری آن را دانلود و نصب کنید.
https://gcc.gnu.org/install/binaries.html
و برای اینکه کدهای منبع کامپایل gccgo را دریافت کنید می توانید از این آدرس استفاده کنید
سعی کنید کدتان را نسبت به توضیح، سیستم عامل و معماری خاصی که استفاده می کنید دانلود کنید.
سپس وارد branch مورد نظر شوید و می توانید آن را ویرایش کنید.
چرا از GOROOT و GOPATH استفاده می کنیم؟
دلیل استفاده از GOROOT این است که ما نیاز داریم از پکیج های استاندارد استفاده کنیم. بخاطر همین این پکیج های استاندارد در مسیر نصب Go هستند.
دلیل استفاده از GOPATH این است که بتواند کد های منبع ما را پیدا کند تا آن ها را کامپایل ( compile ) کند و واردات ( import ) ها را در مسیر ساب دایرکتوری pkg ایجاد کند.