The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"fz – сборка ассемблера и C без make/cmake, одна команда, парал"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Средства разработки)
Изначальное сообщение [ Отслеживать ]

"fz – сборка ассемблера и C без make/cmake, одна команда, парал"  +/
Сообщение от alexvosteemail (ok), 18-Май-26, 07:44 
Привет, коллеги!
Хочу поделиться утилитой fz (ForgeZero), которая полностью переписывает подход к сборке проектов на ассемблере (NASM, GAS, FASM) и C/C++.

Проблема: каждый раз писать nasm -felf64 ..., затем gcc -c ..., потом ld или gcc, да ещё флаги не забыть – надоело. Для больших проектов – свои скрипты или муки с CMake.

Решение: fz – единая команда, которая сама определяет тип файла, вызывает нужный тулчейн, линкует и чистит артефакты. Работает на Linux, macOS, Windows (через clang+lld).

Что умеет (актуальная версия v1.7.1):

    Сборка одного файла или всей папки рекурсивно

    C++, ассемблер (NASM, GAS, FASM) с жёсткими флагами (-Wall -Wextra -Werror ...)

    Параллельная сборка -j N (ускорение на многоядерных)

    Линкер-скрипты -T и -Ttext – для ядер ОС и bare metal

    Плоские бинарники -format bin – для загрузчиков

    Интерактивный шелл -shell – менять флаги и пересобирать на лету

    Кэширование (SHA256) – пересобирает только изменённые файлы

    Watch‑режим -watch – автоматическая пересборка при изменении исходников

    JSON‑вывод – для CI/CD

    Санитайзеры (ASan+UBSan) по умолчанию, -strict добавляет use‑after‑return/scope

    Конфигурация .fz.yaml – описываем source_dirs, exclude, libs, кастомные флаги

    fz -init – создаёт готовый проект с README и конфигами

    fz -update – самообновление через go install или с GitHub (если есть бинарники)

Установка (в одну строку):

curl -L fzget.duckdns.org/linux -o fz && chmod +x fz

Или через Go (требуется Go 1.21+):

go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

Примеры:

fz -asm boot.asm
fz -cc main.c -strict -verbose
fz -dir ./src -out myapp -watch
fz -asm boot.asm -format bin -out boot.bin
fz -shell

Ссылки:

    GitHub: https://github.com/forgezero-cli/ForgeZero

    Сайт проекта: https://fzforum.duckdns.org

Пользуйтесь, контрибьютите, задавайте вопросы.
Код на Go, открытый, MIT.

P.S. Сейчас активно развивается – планы на статические библиотеки, цветной вывод, удалённый кэш. Буду рад фидбеку!

Ответить | Правка | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру