اللغات: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
دليل لبناء NeverC من الكود المصدري وإعداد بيئة تطوير محلية.
- CMake 3.20+
- Ninja
- مُترجم C++17 مُضيف (GCC أو Clang أو MSVC)
cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake
cmake --build build-neverc --target nevercيتم اكتشاف ccache / sccache وتفعيلهما تلقائيًا إن وُجدا.
--target neverc هو بناء stage-1 اليومي (الـ runtime المضمّنة فارغة) ويكفي لمعظم
العمل المحلي. لتضمين string / mimalloc / std / NVK داخل الثنائي نفسه (أو محاذاة
CI)، شغّل هدف المظلة stage-2:
cmake --build build-neverc --target neverc-embed-runtime-bitcodeتفاصيل الإقلاع على مرحلتين في Builtins.
cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake -DNEVERC_INCLUDE_TESTS=ON
cmake --build build-neverc --target check-nevercيعتمد check-neverc على neverc-embed-runtime-bitcode، لذا يُنفَّذ الإقلاع
وإعادة الربط تلقائيًا قبل أول تشغيل للاختبارات. لا حاجة لاستدعاء هدف embed يدويًا.
بعد البناء، يكون الملف التنفيذي neverc في build-neverc/bin/neverc. استخدم النص البرمجي المساعد لإضافته إلى PATH بدلاً من كتابة المسار الكامل كل مرة:
source ./utils/build/neverc-env.shالآن يمكنك تشغيل neverc مباشرةً:
neverc --version
neverc -c hello.c -o hello.oلإزالة النسخة المحلية من PATH في جلسة الصَّدفة الحالية:
source ./utils/build/neverc-env.sh --remove # أو -rكتابة سطر source تلقائيًا في ملف rc الخاص بالصَّدفة (~/.zshrc أو ~/.bashrc أو ~/.profile):
source ./utils/build/neverc-env.sh --installللتراجع:
source ./utils/build/neverc-env.sh --uninstallإذا كان لديك تثبيت release (افتراضيًا: ~/.neverc) وبناء داخل شجرة المصدر، استخدم neverc-env.sh للتبديل بين neverc النشط في جلسة الصَّدفة الحالية دون الكتابة فوق أي تثبيت:
source ./utils/build/neverc-env.sh # التطوير المحلي (build-neverc/bin)
source ./utils/build/neverc-env.sh --local # كما أعلاه
source ./utils/build/neverc-env.sh --release # إصدار release (~/.neverc/bin)
source ./utils/build/neverc-env.sh --status # عرض neverc النشط
source ./utils/build/neverc-env.sh --remove # إزالة كليهما من PATHبعد التبديل يُضبط NEVERC_ENV على local أو release:
echo "$NEVERC_ENV"
neverc --version
which nevercإذا ثُبّت release في prefix آخر، حدّد نفس المجلد المستخدم مع install.sh:
NEVERC_INSTALL_DIR=$HOME/.neverc-v3389.1.2 source ./utils/build/neverc-env.sh --releaseاختياري — أسماء مستعارة في إعداد الصَّدفة (استبدل المسار بالمسار المطلق لمستودعك):
alias neverc-dev='source /path/to/NeverC/utils/build/neverc-env.sh --local'
alias neverc-rel='source /path/to/NeverC/utils/build/neverc-env.sh --release'على Windows، استخدم النص البرمجي .bat (لا يحتاج صلاحيات مسؤول):
utils\build\neverc-env.bat &REM إضافة إلى PATH (الجلسة الحالية)
utils\build\neverc-env.bat --remove &REM إزالة من PATH (الجلسة الحالية)
utils\build\neverc-env.bat --global &REM حفظ في PATH المستخدم عبر setx
utils\build\neverc-env.bat --global -r &REM إزالة من PATH المستخدم عبر setxعلى عكس نص Unix البرمجي، لا حاجة لـ source — ملف .bat يعدّل جلسة cmd الحالية مباشرةً. يكتب --global في سجل المستخدم عبر setx (لا يحتاج صلاحيات مسؤول).
الإصدار موقَّع بشهادة Apple Developer ID ومُوثَّق من Apple. فُكَّ ضغط الأرشيف واستخدمه مباشرةً.
يتضمن NeverC حزم SDK لكل منصة في runtime/ (Windows SDK/WDK، Linux sysroot، macOS sysroot، Android NDK)؛ لا حاجة لإعداد خارجي.
neverc --target=x86_64-pc-windows-msvc \
-fbuiltin-string -o hello.exe hello.c -lkernel32لمزيد من المعلومات حول dyncode لـ Windows (-fdyncode، تحليل استيراد PEB، إلخ)، راجع وثائق مُجمِّع dyncode.
neverc --version
echo 'int main(void) { return 0; }' > /tmp/hello.c
neverc -c /tmp/hello.c -o /tmp/hello.o