hare-build(1) General Commands Manual hare-build(1)

hare build - کامپایل یک برنامه یا ماژول Hare

hare build [-hFqv]
[-a arch]
[-D ident[:type]=value]
[-j jobs]
[-L libdir]
[-l libname]
[-N namespace]
[-o path]
[-R]
[-T tagset]
[-t type]
[path]

دستور hare build یک برنامه یا ماژول Hare را کامپایل می‌کند. آرگومان path مسیر یک فایل منبع Hare یا پوشه‌ای است که شامل یک ماژول Hare باشد (نگاه کنید به hare-module(5)). اگر هیچ مسیری مشخص نشود، ماژول Hare موجود در دایرکتوری کاری فعلی ساخته می‌شود.

-h

متن راهنما را چاپ می‌کند.

-F

برای محیط مستقل (غیرمیزبان / non-hosted) بیلد می‌کند. بخش محیط مستقل (FREESTANDING ENVIRONMENT) را ببینید.

-q

به جز خطاها، در هنگام بیلد چیزی در stdout نمی‌نویسد.

-v

ثبت لاگ با جزئیات (verbose) را فعال می‌کند. برای افزایش سطح جزئیات، آن را دو بار مشخص کنید.

-a arch

معماری مورد نظر را برای کامپایل متقاطع (cross-compiling) تنظیم می‌کند. برای نام معماری‌های پشتیبانی‌شده به بخش معماری‌ها (ARCHITECTURES) مراجعه کنید.

-D ident[:type]=value

یک ثابت در سامانه انواع (type system) تعریف می‌کند. ident به عنوان یک شناسه Hare (مانند "foo::bar::baz")، type به عنوان یک نوع Hare (مانند "str" یا "struct { x: int, y: int }")، و value به عنوان یک عبارت Hare (مانند "42") تجزیه می‌شود. برای جلوگیری از تداخل میان نحو شل و نحو Hare، نسبت به گریز دادن (escaping) کاراکترهای لازم دقت کنید.

-j jobs

حداکثر تعداد کارهایی را که باید به‌صورت موازی اجرا شوند تعیین می‌کند. مقدار پیش‌فرض برابر با تعداد پردازنده‌های در دسترس سیستم میزبان است.

-L libdir

یک دایرکتوری را به مسیر جستجوی کتابخانه‌های پیونددهنده (linker) اضافه می‌کند.

-l libname

پیوند دادن (link) با کتابخانه سیستمی مشخص‌شده. نام مستقیماً به پیونددهنده فرستاده می‌شود. پیوند دادن با هر کتابخانه‌ای همچنین باعث پیوند با libc(7) شده و تگ +libc را به برچسب‌های بیلد پیش‌فرض می‌افزاید (بخش BUILD TAGS در hare-module(5) را ببینید).

-N namespace

فضای نام (namespace) ماژول را بازنویسی (override) می‌کند.

-o path

فایل خروجی را در مسیر داده‌شده تنظیم می‌کند. تنظیم مسیر روی - باعث نوشتن خروجی در stdout می‌شود.

-R

بیلد در حالت انتشار (release mode). در حالت دیباگ (پیش‌فرض)، ماژول ::debug به عنوان یک وابستگی وارد می‌شود که به طور خودکار تعدادی از قابلیت‌های اشکال‌زدایی زمان اجرا را در فایل اجرایی شما نصب می‌کند. برای جزئیات این قابلیت‌ها، مستندات این ماژول را ببینید.

-T tagset

تنظیم یا حذف برچسب‌های بیلد (build tags). بخش BUILD TAGS در hare-module(5) را ببینید.

-t type

نوع بیلد را مشخص می‌کند. type باید یکی از مقادیر s، o یا bin، به ترتیب برای اسمبلی، شیء کامپایل‌شده (compiled object) یا باینری کامپایل‌شده باشد. نوع بیلد پیش‌فرض باینری کامپایل‌شده است.

پرچم -a برای کامپایل متقاطع به یک معماری هدف متفاوت با معماری میزبان به کار می‌رود. در حال حاضر معماری‌های زیر پشتیبانی می‌شوند:

  • aarch64
  • riscv64
  • x86_64

سیستم معمولاً بر اساس هدف مورد نظر، مقادیر پیش‌فرض معقولی را برای ابزارهای AR، AS، LD و CC فراهم می‌کند. با این حال، ممکن است بخواهید خودتان این متغیرها را برای کنترل زنجیره ابزار متقاطع (cross toolchain) مورد استفاده تنظیم کنید.

اگر دستور با -F اجرا شود، hare build یک محیط مستقل (freestanding) را هدف قرار می‌دهد. این کار اثرات زیر را به همراه دارد:

  • هیچ محدودیتی بر امضای "main" اعمال نمی‌شود
  • مشخص کردن کتابخانه‌های خارجی با -l به‌صورت خودکار موارد زیر را انجام نمی‌دهد:
  • پیوند با libc (در صورت نیاز -lc را دستی اضافه کنید)
  • افزودن پرچم +libc (در صورت نیاز -T+libc را دستی اضافه کنید)
  • استفاده از کامپایلر C برای پیوند دادن (در صورت نیاز از LD=cc استفاده کنید)

متغیرهای محیطی زیر بر اجرای hare build تأثیر می‌گذارند:

HARECACHE مسیر حافظه پنهان (cache) بیلد. پیش‌فرض برابر با $XDG_CACHE_HOME/hare، یا در صورت تنظیم نبودن $XDG_CACHE_HOME، برابر با ~/.cache/hare است.
HAREPATH فهرست دایرکتوری‌ها برای جستجوی وابستگی‌های ماژول. به hare-module(5) مراجعه کنید.
NO_COLOR هنگامی که روی یک رشته غیرخالی تنظیم شده باشد، تمام خروجی‌های رنگی را غیرفعال می‌کند.
HAREC_COLOR هنگامی که روی 0 تنظیم شود، خروجی رنگی را برای harec غیرفعال می‌کند و وقتی روی هر مقدار دیگری تنظیم شود، آن را فعال می‌کند. این متغیر بر NO_COLOR اولویت دارد.
HAREC نام دستور harec برای استفاده.
HARECFLAGS پرچم‌های اضافی برای ارسال به harec.
QBE نام دستور qbe برای استفاده.
QBEFLAGS پرچم‌های اضافی برای ارسال به qbe.
AR نام دستور ar(1) برای استفاده.
ARFLAGS پرچم‌های اضافی برای ارسال به ar(1).
AS نام دستور as(1) برای استفاده.
ASFLAGS پرچم‌های اضافی برای ارسال به as(1).
LD نام دستور ld(1) برای استفاده.
LDLINKFLAGS پرچم‌های اضافی برای ارسال به ld(1).
CC نام دستور cc(1) برای استفاده در هنگام پیوند کتابخانه‌های خارجی.
LDFLAGS پرچم‌های پیونددهنده اضافی برای ارسال به cc(1).

hare-run(1), hare-test(1), hare-module(5), ar(1), as(1), cc(1), ld(1)

2026-06-01