{"id":172667,"date":"2026-05-19T06:24:36","date_gmt":"2026-05-19T04:24:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera"},"modified":"2026-05-19T13:22:10","modified_gmt":"2026-05-19T11:22:10","slug":"vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed","title":{"rendered":"Release of ForgeZero 1.9.0, a build tool for C and assembler.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>ForgeZero 1.9.0 (fz) has been released, a console build tool for projects in C, C++, and assembly (NASM, GAS, FASM). The tool does not require a Makefile or other configuration files for basic usage. The project code is written in Go and is distributed under the MIT license.      <\/p>\n<p>ForgeZero determines the file type and automatically selects the necessary backend. Each code file is compiled into an object file, after which duplicate global symbols are checked across all objects and linked into a single executable file. Compiled files are cached and rebuilt only after changes are made to the associated code files. Optionally, file system change tracking can be enabled, allowing for rebuilding after file updates.    <\/p>\n<p>Supported compilers include GCC, Clang, G++, Clang++; assemblers NASM, GAS, FASM; linkers LD, GCC, Clang; archiver AR. Required warnings for C and C++: '-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion'. By default, AddressSanitizer and UndefinedBehaviorSanitizer are enabled (disabled with the flag -sanitize=false). Supported platforms are Linux, macOS, Windows (WSL2 and experimentally natively).       <\/p>\n<p>Key changes in version 1.9.0:  <\/p>\n<ul>\n<li class=\"l\"> A new flag '-target'  has been added, allowing cross-compilation for arbitrary architectures with the appropriate prefix toolchain. fz automatically determines the names of the compiler, linker, and archiver based on the specified identifier (e.g., 'arm-linux-gnueabihf-gcc'). All standard GNU target platforms are supported, including arm-linux-gnueabihf, aarch64-linux-gnu, and riscv64-linux-gnu.\n<li class=\"l\"> Support for the LSP (Language Server Protocol) has been implemented. The flag '-compile-commands' generates a compile_commands.json file (Compilation Database) at the root of the project. The file is read by language <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/dts-dusseldorf\/\" title=\"servers\" data-wpil-keyword-link=\"linked\">servers<\/a> The fz command \"-update\" now saves the current binary file to \/usr\/local\/bin\/fz.old before installing a new version, allowing users to revert to the previous version without needing to reinstall.\n<li class=\"l\"> The fz command '-update' now saves the current binary file to \/usr\/local\/bin\/fz.old before installing a new version, allowing for a rollback to the previous version without reinstallation.\n<li class=\"l\"> The error has been fixed where files with the same base names from different subdirectories would overwrite each other's object files in multi-directory projects. Object file names are now generated based on the full relative path to the source file.\n<li class=\"l\"> An interactive mode 'fz -shell' has been implemented for assembling single files.\n<li class=\"l\"> Test coverage has been added for the SplitCommand, CmdSet, and CmdBuild commands. The coverage for the linker package has increased from 17% to 60%, and coverage across all packages has exceeded 40%.\n<li class=\"l\"> A CheckTool replacement mechanism has been added for testing scenarios with missing toolchain components.      <\/ul>\n<p>Changes from previous releases:  <\/p>\n<ul>\n<li class=\"l\"> Version 1.8.0 introduces support for building static libraries (-type static \/ -lib), ensures the uniqueness of object file names in multi-directory projects, and fixes issues in the build subsystem related to traversing the path '..'.\n<li class=\"l\"> Version 1.7.0 adds parallel compilation (-j N, 0 \u2014 auto-detection of the number of cores), support for linker scripts (-T) and entry point addresses (-Ttext), an interactive mode (fz -shell), explicit selection of output formats (elf32, elf64, bin), and compilation of C++ files (.cpp, .cc, .cxx) with the same strict warning flags as for C.\n<li class=\"l\"> In version 1.6.0, project initialization (fz -init creates .fz.yaml, .fzignore, README.md), support for bin format (-format bin) for loaders and firmware, and configuration fields libs, flags.cc, flags.asm, flags.ld have been added.\n<li class=\"l\"> In version 1.5.0, multiple source directories (source_dirs), explicit file lists (source_files), include\/exclude templates, a libs field for the linker, the .fzignore file, and hierarchical merging of configuration files have been implemented.    <\/ul>\n<p>Source: <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=65474\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 ForgeZero 1.9.0 (fz), \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C, C++ \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (NASM, GAS, FASM). \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Makefile \u0438\u043b\u0438 \u0438\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. ForgeZero \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u0430 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0431\u044d\u043a\u0435\u043d\u0434. \u041a\u0430\u0436\u0434\u044b\u0439 \u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u0434\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-172667","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 ForgeZero 1.9.0 (fz), \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C, C++ \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (NASM, GAS, FASM).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a ForgeZero 1.9.0, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f C \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 ForgeZero 1.9.0 (fz), \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C, C++ \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (NASM, GAS, FASM).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-19T04:24:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-19T11:22:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ForgeZero 1.9.0 release, a build tool for C and assembler | ProHoster","description":"Release ForgeZero 1.9.0 (fz) has been published, a console build tool for projects in C, C++, and assembler (NASM, GAS, FASM).","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a ForgeZero 1.9.0, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f C \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 ForgeZero 1.9.0 (fz), \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 C, C++ \u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0435 (NASM, GAS, FASM).","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-19T04:24:36+00:00","article:modified_time":"2026-05-19T11:22:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/172667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=172667"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/172667\/revisions"}],"predecessor-version":[{"id":181603,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/172667\/revisions\/181603"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=172667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=172667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=172667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}