Qual é a diferença entre Makefile e CMake para compilar código C++?
Olá a todos! Comecei a estudar C++ recentemente e estou tentando entender as ferramentas de build. Tenho um projeto simples: main.cpp, uma classe myclass.cpp e myclass.h. Atualmente, compilo tudo manualmente no terminal:
g++ -c myclass.cpp -o myclass.o
g++ -c main.cpp -o main.o
g++ main.o myclass.o -o myprogram
Isso é terrivelmente inconveniente, especialmente quando há muitos arquivos. Todo mundo fala sobre Makefile e CMake, mas não entendo a diferença entre eles. Makefile é algo como um script para make, onde eu escrevo manualmente os comandos de compilação? E CMake é a mesma coisa, mas através de um config? Ou são coisas completamente diferentes? Qual ferramenta um iniciante deve aprender? Ficaria grato por uma explicação com exemplos! Preciso entender qual delas resolve meu problema de build de projeto de forma mais simples e eficiente. Desde já, obrigado!
<<>>
Diferença chave: Makefile é uma receita, CMake é um gerador de receitas
Imagine que você é um padeiro. Makefile é sua receita escrita à mão: "pegue 200