Skip to content

Latest commit

 

History

History
143 lines (92 loc) · 4.73 KB

0. Setup.md

File metadata and controls

143 lines (92 loc) · 4.73 KB

Setup necesario del curso

Para el curso, se necesita como mínimo:

  • gcc, el compilador de C.
  • make, para automatizar la compilación.
  • git, para subir tus tareas.

Además, para debuggear, se necesita valgrind, que provee herramientas para entender errores y el estado de la memoria.

En esta guía vamos a mencionar lo esencial, te recomendamos que revises las herramientas que mencionamos y las guías de instalación. Cualquier duda, puedes preguntarla en el foro del curso.

Setup base MacOS

Lo recomendado es activar gcc y make con:

xcode-select --install

Instala git con Homebrew:

brew install git

Sigue el setup de Git para configurar tu usuario.

Para correr valgrind, necesitarás usar Docker, que se explica más adelante.

Setup base Windows

Aunque se puede compilar y ejecutar C en Windows, es mucho más fácil hacerlo en Linux. Para esto, lo recomendado es usar Windows Subsystem for Linux (WSL), que permite correr un sistema operativo Linux en Windows.

wsl --install  # puede requerir pasos adicionales

Ve la guía oficial de Microsoft para instalar WSL. Además, es recomendado que revises los otros tutoriales de la misma página, para que sepas como usar un editor y terminal en WSL.

Sigue el resto de la guía en la sección de Linux.

Setup base Linux

Esto está pensado para Ubuntu, Debian y Linux Mint, pero es similar en otras distribuciones, solo debes ocupar el package manager de tu sistema.

Ingresa lo siguiente en la terminal:

# Actualizar las fuentes de los paquetes
sudo apt update

# Instalar gcc, make y git
sudo apt install gcc make pkg-config git

# Instalar valgrind
sudo apt install valgrind

Luego sigue el resto de la guía para configurar git.

Setup Git

Las guías de GitHub son mucho más completas que esta sección. Aquí incluimos lo esencial.

Primero, hay que configurar el usuario de Git que se usará.

git config --global user.name "NOMBRE APELLIDO"
git config --global user.email "correo@foo.com"

Luego, hay que configurar como se va a autentificar con el servidor de GitHub. Lo recomendado es usar GitHub CLI. Ve su guía de instalación aquí. En Linux, usa las instrucciones para Debian y Ubuntu (apt).

gh auth login  # y luego elige autentificación por HTTPS

Setup Docker

Con Docker puedes crear pequeñas máquinas virtuales, lo que te permitirá correr Linux dentro de tu sistema.

Ve la guía de instalación oficial de Docker.

Asegúrate de que docker este corriendo al tratar de usarlo, puedes abrir Docker Desktop para ello.

La imagen que usamos en el curso es carlogauss33/edd-runner, que pueden encontrar definida aquí.

Para utilizar Docker en este curso, tenemos múltiples alternativas.

edd-runner

Link al setup de edd-runner.

Instala un cli que permite ejecutar comandos dentro un contenedor de la imagen de Docker que usamos en el curso.

edd-runner [programa] [argumentos]

Ejemplo:

edd-runner gcc -o main main.c

EDD DevContainer

Link al setup de EDD DevContainer

Crea un entorno de desarrollo virtual dentro usando el mismo setup de la imagen de Docker que usamos en el curso. Se puede correr fácilmente en la nube, y se integra mejor con el editor.

EDD Docker (no tan recomendado)

Link al setup de EDD Docker

EDD Docker es la solución original que entregaba el curso, las otras nuevas alternativas pueden ser más fáciles de usar hoy en día. Este crea un volumen compartido entre tareas para poder tener un entorno para compilar código. Dado el par de niveles de carpetas y Makefiles, puede ser confuso de usar.

Probando que todo esta ok

Usa un repositorio o código de ejemplo de las capsulas, probando las siguientes cosas:

  • Clonar y pushear a un repositorio tuyo

  • Compilar con gcc y make

    make
  • Correr el programa

    ./main  # o el nombre del ejecutable
    time ./main  # para ver cuanto tiempo toma
  • Correr valgrind para ver si hay errores

    valgrind ./main
  • Revisar el uso de memoria

    valgrind --tool=massif --massif-out-file=massif.out ./main
    ms_print massif.out