Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joao-marco-jf/clang-strategy-game
Projeto final da matéria de Estrutura de dados 1. Jogo de estratégia em linguagem C utilizando de conceitos abordados em sala de aula como por exemplo: listas encadeadas, matrizes esparças, fila e pilha.
https://github.com/joao-marco-jf/clang-strategy-game
Last synced: about 13 hours ago
JSON representation
Projeto final da matéria de Estrutura de dados 1. Jogo de estratégia em linguagem C utilizando de conceitos abordados em sala de aula como por exemplo: listas encadeadas, matrizes esparças, fila e pilha.
- Host: GitHub
- URL: https://github.com/joao-marco-jf/clang-strategy-game
- Owner: joao-marco-jf
- License: apache-2.0
- Created: 2024-05-30T15:34:29.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-06-18T02:30:50.000Z (5 months ago)
- Last Synced: 2024-06-18T15:16:05.513Z (5 months ago)
- Language: C
- Size: 139 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### README
# Meu Projeto de Aplicação C
Este projeto é uma aplicação desenvolvida em linguagem C. O código fonte está organizado em diferentes diretórios, e o processo de compilação é gerenciado pelo Makefile fornecido.
## Estrutura de Diretórios
- `src`: Contém os arquivos fonte (`.c`).
- `include`: Contém os arquivos de cabeçalho (`.h`).
- `out`: Diretório onde os arquivos objeto (`.o`) serão gerados.
- `bin`: Diretório onde o executável final será gerado.## Requisitos
- Compilador GCC
## Compilação e Execução
### Alvo Padrão
Para compilar o projeto, basta rodar o comando:
```sh
make
```Este comando irá gerar o executável principal `app` no diretório `bin`.
### Limpeza
Para limpar os arquivos gerados (arquivos objeto e o executável), use o comando:
```sh
make clean
```Este comando remove os diretórios `out`, `bin` e o arquivo `saida.txt`.
## Descrição do Makefile
O Makefile incluído neste projeto automatiza o processo de compilação. Aqui está uma breve descrição das principais partes do Makefile:
- **Nome do compilador**
```makefile
CXX = gcc
```- **Flags do compilador**
```makefile
CXXFLAGS = -Wall -Wextra -Iinclude
```- **Diretórios**
```makefile
SRC_DIR = src
INC_DIR = include
OUT_DIR = out
BIN_DIR = bin
```- **Arquivos fonte e objetos**
```makefile
SRCS = $(wildcard $(SRC_DIR)/*.c) $(wildcard $(SRC_DIR)/**/*.c)
OBJS = $(patsubst $(SRC_DIR)/%.c, $(OUT_DIR)/%.o, $(filter-out $(SRC_DIR)/main.c, $(SRCS)))
MAIN_OBJ = $(OUT_DIR)/main.o
```- **Arquivo executável**
```makefile
EXEC = $(BIN_DIR)/app
```- **Alvo padrão**
```makefile
all: $(EXEC)
```- **Compilação do executável principal**
```makefile
$(EXEC): $(OBJS) $(MAIN_OBJ)
mkdir -p $(BIN_DIR)
$(CXX) $(OBJS) $(MAIN_OBJ) -o $@
```- **Compilação dos objetos dos arquivos fonte**
```makefile
$(OUT_DIR)/%.o: $(SRC_DIR)/%.c
mkdir -p $(OUT_DIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
```- **Limpeza**
```makefile
clean:
rm -rf $(OUT_DIR) $(BIN_DIR) ./saida.txt
```- **Phony Targets**
```makefile
.PHONY: all clean
```## Notas
- Certifique-se de ter o GCC instalado no seu sistema para compilar este projeto.
- O Makefile está configurado para gerar os arquivos objeto no diretório `out` e o executável no diretório `bin`.## Autores
João Marcos Jensen Francisco e Cauã Rodrigues