Aula 15 - Multiplataforma e Build 🛠️
Nesta aula, sairemos do arquivo único e aprenderemos como organizar projetos profissionais que funcionam tanto no Windows quanto no Linux.
📂 Organização de Múltiplos Arquivos
Em projetos reais, separamos a interface (Headers) da implementação (Source).
.h/.hpp: Contém apenas as declarações de classes e funções..cpp: Contém a lógica de funcionamento.
Exemplo de Estrutura:
include/Calculadora.hsrc/Calculadora.cppmain.cpp
🏗️ CMake: A Ferramenta de Build Padrão
O CMake é uma ferramenta multiplataforma que gera os scripts de compilação automáticos (Makefiles, Projetos Visual Studio, etc).
CMakeLists.txt básico:
cmake_minimum_required(VERSION 3.10)
project(MeuSistema)
add_executable(MeuSistema main.cpp src/Calculadora.cpp)
🌍 Diferenças Windows vs Linux
| Característica | Windows | Linux |
|---|---|---|
| Extensão | .exe |
Sem extensão (binário) |
| Separador | \ (Contra-barra) |
/ (Barra) |
| Compilador | MSVC / MinGW | GCC / Clang |
| Case Sensitivity | Insensível aos nomes | Sensível aos nomes |
🧠 Flags Importantes do Compilador
Dicas de Build
-Wall: Ativa todos os avisos de erro comuns.-O2ou-O3: Ativa otimizações de performance.-std=c++17: Define a versão do padrão da linguagem.
Include Guards
Sempre use #pragma once no topo dos seus arquivos .h para evitar que o compilador inclua o mesmo arquivo várias vezes, o que geraria erros de redefinição.
💻 Exemplo Prático: Scripts de Build
📝 Exercício de Fixação
- Modularização: Crie um projeto com uma classe
Utilseparada em arquivos.he.cpp. - CMake: Escreva um
CMakeLists.txtpara compilar o projeto anterior. - Desafio: Use
#ifdef _WIN32para criar uma função que imprima "Rodando no Windows" ou "Rodando no Linux" dependendo do sistema.
🚀 Mini-Projeto da Aula
Template de Projeto Profissional:
Organize uma pasta de projeto seguindo o padrão: src, include, build e data. Inclua um CMakeLists.txt funcional e um README.md explicando como compilar o projeto. Esse template será a base para o seu Projeto Final.