{"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\/pt\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed","title":{"rendered":"Lan\u00e7amento do ForgeZero 1.9.0, uma ferramenta de constru\u00e7\u00e3o para C e assembly","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o ForgeZero 1.9.0 (fz), uma ferramenta de linha de comando para compilar projetos em C, C++ e Assembly (NASM, GAS, FASM). A ferramenta n\u00e3o requer a cria\u00e7\u00e3o de um Makefile ou outros arquivos de configura\u00e7\u00e3o para uso b\u00e1sico. O c\u00f3digo do projeto \u00e9 escrito na linguagem Go e \u00e9 distribu\u00eddo sob a licen\u00e7a MIT.      <\/p>\n<p>O ForgeZero determina o tipo de arquivo e seleciona automaticamente o backend necess\u00e1rio. Cada arquivo de c\u00f3digo \u00e9 compilado em um arquivo objeto, ap\u00f3s o que \u00e9 realizada uma verifica\u00e7\u00e3o de s\u00edmbolos globais duplicados em todos os objetos, e a liga\u00e7\u00e3o \u00e9 feita em um \u00fanico arquivo execut\u00e1vel. Os arquivos compilados s\u00e3o armazenados em cache e s\u00e3o recompilados apenas ap\u00f3s altera\u00e7\u00f5es em arquivos de c\u00f3digo relacionados. O rastreamento opcional de altera\u00e7\u00f5es no sistema de arquivos e a recompila\u00e7\u00e3o ap\u00f3s a atualiza\u00e7\u00e3o de arquivos de c\u00f3digo s\u00e3o suportados.    <\/p>\n<p>S\u00e3o suportados os compiladores GCC, Clang, G++, Clang++; os montadores NASM, GAS, FASM; os vinculadores LD, GCC, Clang; o arquivador AR. Avisos obrigat\u00f3rios para C e C++: &#171;-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion&#187;. Por padr\u00e3o, os sanitizadores AddressSanitizer e UndefinedBehaviorSanitizer est\u00e3o ativados (podem ser desativados com a flag -sanitize=false). Suportadas as plataformas Linux, macOS, Windows (WSL2 e experimentalmente nativo).       <\/p>\n<p>Principais mudan\u00e7as na vers\u00e3o 1.9.0:  <\/p>\n<ul>\n<li class=\"l\"> Adicionada a flag &#171;-target&#187; &lt;triple&gt;, permitindo a compila\u00e7\u00e3o cruzada para qualquer arquitetura, desde que o kit de ferramentas correspondente esteja dispon\u00edvel. O fz determina automaticamente os nomes do compilador, vinculador e arquivador com base no identificador fornecido (por exemplo, &#171;arm-linux-gnueabihf-gcc&#187;). Suportadas todas as plataformas-alvo GNU padr\u00e3o, incluindo arm-linux-gnueabihf, aarch64-linux-gnu e riscv64-linux-gnu.\n<li class=\"l\"> Implementado suporte ao protocolo LSP (Language Server Protocol). A flag &#171;-compile-commands&#187; gera o arquivo compile_commands.json (Database de Compila\u00e7\u00e3o) na raiz do projeto. O arquivo \u00e9 lido por linguagens. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pt\/server\/dts-dusseldorf\/\" title=\"servidores\" data-wpil-keyword-link=\"linked\">servidores<\/a> clangd e ccls, fornecendo recursos de autocompletar, navega\u00e7\u00e3o pelo c\u00f3digo e diagn\u00f3stico em editores que suportam LSP (Neovim, VSCode, CLion, Emacs, entre outros).\n<li class=\"l\"> O comando fz &#171;-update&#187; antes de instalar uma nova vers\u00e3o agora salva o arquivo bin\u00e1rio atual em \/usr\/local\/bin\/fz.old, permitindo reverter para a vers\u00e3o anterior sem reinstala\u00e7\u00e3o.\n<li class=\"l\"> Corrigido um erro em projetos multidiret\u00f3rios, onde arquivos com os mesmos nomes base de diferentes subdiret\u00f3rios sobrescreviam os arquivos objeto um do outro. Nomes de arquivos objeto agora s\u00e3o gerados com base no caminho relativo completo para o arquivo fonte.\n<li class=\"l\"> Implementado o modo interativo &#171;fz -shell&#187; para compilar arquivos \u00fanicos.\n<li class=\"l\"> Adicionado cobertura de teste para os comandos SplitCommand, CmdSet e CmdBuild. A cobertura de testes do pacote de montagem aumentou de 17% para 60%, enquanto a cobertura de todos os pacotes ultrapassou 40%.\n<li class=\"l\"> Adicionado o mecanismo de substitui\u00e7\u00e3o CheckTool para testar cen\u00e1rios com componentes ausentes do toolchain.      <\/ul>\n<p>Altera\u00e7\u00f5es nas vers\u00f5es anteriores:  <\/p>\n<ul>\n<li class=\"l\"> Na vers\u00e3o 1.8.0, foi implementada a compila\u00e7\u00e3o de bibliotecas est\u00e1ticas (-type static \/ -lib), garantindo a singularidade dos nomes dos arquivos objeto em projetos multi-diret\u00f3rios, corrigidos bugs no subsistema de compila\u00e7\u00e3o relacionados \u00e0 navega\u00e7\u00e3o no caminho &#171;..&#187;.\n<li class=\"l\"> Na vers\u00e3o 1.7.0, adicionada a compila\u00e7\u00e3o paralela (-j N, 0 \u2014 auto-detec\u00e7\u00e3o do n\u00famero de n\u00facleos), suporte a scripts de vinculador (-T) e endere\u00e7o do ponto de entrada (-Ttext), modo interativo (fz -shell), escolha expl\u00edcita do formato de sa\u00edda (elf32, elf64, bin), compila\u00e7\u00e3o de arquivos C++ (.cpp, .cc, .cxx) com os mesmos avisos rigorosos que para C.\n<li class=\"l\"> Na vers\u00e3o 1.6.0, foram adicionadas a inicializa\u00e7\u00e3o de projeto (fz -init, cria .fz.yaml, .fzignore, README.md), suporte ao formato bin (-format bin) para loaders e firmwares, campos de configura\u00e7\u00e3o libs, flags.cc, flags.asm, flags.ld.\n<li class=\"l\"> Na vers\u00e3o 1.5.0, foram implementadas m\u00faltiplas diret\u00f3rios de fontes (source_dirs), listas expl\u00edcitas de arquivos (source_files), templates include\/exclude, campo libs para bibliotecas do linker, arquivo .fzignore, fus\u00e3o multin\u00edvel de arquivos de configura\u00e7\u00e3o.    <\/ul>\n<p>Fonte: <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.3 - 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\/pt\/blog\/news\/vypusk-forgezero-1-9-0-instrumenta-sborki-dlya-c-i-assemblera__trashed\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Lan\u00e7amento do ForgeZero 1.9.0, ferramenta de compila\u00e7\u00e3o para C e assembly | ProHoster","description":"Lan\u00e7ado o ForgeZero 1.9.0 (fz), uma ferramenta de linha de comando para a constru\u00e7\u00e3o de projetos em C, C++ e assembly (NASM, GAS, FASM).","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/172667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=172667"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/172667\/revisions"}],"predecessor-version":[{"id":181603,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/172667\/revisions\/181603"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=172667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=172667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=172667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}