CMake para C++: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao CMake: o que é e para que serve

\n\n

CMake (Cross-Platform Make) é um poderoso sistema de automação de compilação de software multiplataforma e de código aberto. Ao contrário dos Makefiles tradicionais, o CMake não compila o projeto diretamente, mas gera arquivos de compilação para ferramentas nativas (Make, Ninja, Visual Studio, Xcode) com base em arquivos de configuração simples CMakeLists.txt.

\n\n

Para que serve o CMake?

\n
    \n
  • Multiplataforma: O mesmo código pode ser compilado no Windows, Linux e macOS sem alterar a configuração.
  • \n
  • Gerenciamento de dependências: Suporte integrado para localizar e conectar bibliotecas externas (Boost, OpenCV, Qt, etc.).
  • \n
  • Flexibilidade: Suporte a vários geradores de projetos (Visual Studio, Xcode, Ninja, Unix Makefiles).
  • \n
  • Modularidade: Possibilidade de criar bibliotecas (estáticas e dinâmicas), executáveis e testes.
  • \n
  • Integração com IDE: IDEs modernas (CLion, VS Code, Qt Creator) possuem suporte integrado ao CMake.
  • \n
\n\n

O CMake tornou-se o padrão de facto para projetos C++. Gigantes como Google (TensorFlow, Chrome), Microsoft (VS Code), KDE, LLVM/Clang e muitos outros o utilizam.

\n\n

Instalação do CMake

\n\n

Ao contrário das bibliotecas Python, o CMake não é instalado via pip. É um aplicativo independente. Vejamos a instalação para os principais sistemas operacionais:

\n\n

Windows

\n
    \n
  1. Baixe o instalador do site oficial (escolha a versão para Windows — .msi ou .zip).
  2. \n
  3. Execute a instalação. Marque obrigatoriamente a opção "Add CMake to the system PATH for all users".
  4. \n
  5. Após a instalação, verifique: cmake --version no prompt de comando.
  6. \n
\n\n

Linux (Ubuntu/Debian)

\n
sudo apt update\nsudo apt install cmake\ncmake --version
\n\n

macOS (Homebrew)

\n
brew install cmake\ncmake --version
\n\n

Verificação da instalação

\n

Após a instalação, execute no terminal:

\n
cmake --version\n# A saída deve ser semelhante a:\n# cmake version 3.27.0
\n\n

Início rápido: primeiro projeto com CMake

\n\n

Vamos criar um projeto simples "Hello World" usando CMake.

\n\n

Estrutura do projeto

\n
my_project/\n├── CMakeLists.txt\n└── main.cpp
\n\n

Arquivo main.cpp

\n
#include <iostream>\n\nint main() {\n    std::cout << "Hello, CMake!" << std::endl;\n    return 0;\n}
\n\n

Arquivo CMakeLists.txt

\n
cmake_minimum_required(VERSION 3.10)\nproject(HelloWorld VERSION 1.0 LANGUAGES CXX)\n\nadd_executable(hello main.cpp)
\n\n

Compilação do projeto

\n
mkdir build\ncd build\ncmake ..\ncmake --build .\n./hello
\n\n

Explicação:

\n
    \n
  • cmake_minimum_required — define a versão mínima do CMake.
  • \n
  • project — define o nome do projeto e a linguagem (CXX para C++).
  • \n
  • add_executable — cria um arquivo executável a partir dos códigos-fonte.
  • \n
\n\n

Principais métodos e funções do CMake

\n\n

1. cmake_minimum_required()

\n

Descrição: Define a versão mínima do CMake necessária para compilar o projeto. Se a versão do CMake for inferior à especificada, um erro será exibido.

\n

Parâmetros:

\n
    \n
  • VERSION — versão no formato major.minor[.patch[.tweak]]
  • \n
  • FATAL_ERROR — opcional, causa um erro fatal se a versão não corresponder
  • \n
\n

Exemplo:

\n
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
\n\n

2. project()

\n

Descrição: Define o nome do projeto e seus parâmetros. Deve

Recommendations