Project

General

Profile

Actions

Milestone #66

open

LLM senza fronzoli

Milestone #66: LLM senza fronzoli

Added by Daniele Cruciani 3 months ago. Updated 3 months ago.

Status:
new
Priority:
wishlist
Assignee:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Sprint:

Description

[2025-12-07 23:07]

Esatto, il confronto è questo:

1️⃣ CMake vs Autotools (autoconf + automake)

Aspetto CMake Autoconf + Automake
Linguaggio target C++ (C, C++ nativamente, ma supporta anche altri) Originariamente C (C++ supportato, ma meno moderno)
Sintassi CMakeLists.txt (DSL chiaro e leggibile) .ac + Makefile.am (macro m4, più verboso)
Genera Makefile, Ninja, VS projects, Xcode Solo Makefile (possono essere portabili)
Cross-platform Ottimo (Linux, macOS, Windows) Limitato, più difficile Windows
Gestione dipendenze vcpkg, Conan, FetchContent Manuale o via pkg-config
Complessità Più semplice e leggibile Più complesso, difficile da mantenere
Comunità moderna Standard per C++ moderno Legacy, usato su molti progetti C storici (kernel, librerie di sistema)

2️⃣ Perché oggi si preferisce CMake
• Progetti C++ moderni (microservizi, librerie moderne, cross-platform) → CMake è più pratico.
• Gestione di librerie esterne con vcpkg / Conan → integrato con CMake.
• Multi-stage build Docker → CMake genera binari facilmente separati da build environment.
• Debugging e IDE integration → VS, CLion, Xcode supportano CMake nativamente.

3️⃣ Autoconf + Automake
• Ancora usato per progetti storici o librerie di sistema in C.
• Richiede script m4 e Makefile.am → più verboso e meno intuitivo.
• Funziona bene per portabilità Unix, ma non è “friendly” per C++ moderno e sistemi Windows.

🔑 Conclusione pratica
• Per un microservizio C++ moderno (HTTP server, JSON streaming, MySQL) → CMake è il tool standard e più semplice.
• Autotools → utile solo se lavori su librerie C legacy o sistemi Linux molto vecchi.

Se vuoi, posso scriverti un esempio completo di progetto C++ moderno con:
• CMakeLists.txt configurato per lib esterne (MySQL, Crow, nlohmann-json, jwt-cpp)
• Multi-stage Dockerfile pronto per Goreleaser

Così hai full toolchain pronta per build e deploy. Vuoi che lo faccia?

Actions

Also available in: PDF Atom