Языки: 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 nevercccache / sccache автоматически обнаруживается и включается при наличии.
--target neverc — повседневная stage-1 сборка (встроенные runtime — пустые
заглушки); этого хватает для большей части локальной работы. Чтобы встроить
string / mimalloc / std / NVK в сам бинарник (или получить компилятор как в CI),
запустите umbrella stage-2:
cmake --build build-neverc --target neverc-embed-runtime-bitcodeПодробности двухэтапного bootstrap — в 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-neverccheck-neverc зависит от neverc-embed-runtime-bitcode, поэтому при первом
запуске тестов bootstrap и перелинковка компилятора выполняются автоматически.
Отдельно вызывать 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 в текущей сессии shell без перезаписи установок:
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По желанию — алиасы в конфигурации shell (замените путь на абсолютный к вашему репозиторию):
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); внешняя настройка SDK не требуется.
neverc --target=x86_64-pc-windows-msvc \
-fbuiltin-string -o hello.exe hello.c -lkernel32О шеллкоде для Windows (-fdyncode, PEB-разрешение импортов и т.д.) см. документацию dyncode-компилятора.
neverc --version
echo 'int main(void) { return 0; }' > /tmp/hello.c
neverc -c /tmp/hello.c -o /tmp/hello.o