Le soluzioni sono suddivise per i vari laboratori, se pensi che certe cose possano esser corrette e realizzate diversamente sentiti libero di fare una merge request
Spesso non faccio merge sul branch principale sinché non sono sicuro che il mio codice sia pronto alla consegna, quindi se ancora non trovi un esercizio prova a controllare nel branch del relativo laboratorio, la struttura che uso per nominare i branch è lab/{{ NUMERO_LABORATORIO }}
Nella cartella .vscode
sono presenti delle configurazioni per poter avviare e debuggare programmi in C/C++ su sistemi GNU/Linux e macOS, le attuali configurazioni sono pensate per usare come compilatori clang
o gcc
e come debugger gdb
o lldb
.
Build linking libraries
: Compila il file*.c
attivo linkando tutti i file*.o
presenti nella cartella dello stessoBuild folder
: Compila tutti i file*.c
nella cartella del file attivo in un unico eseguibileBuild
: Compila il file.c
attivoBuild library
: Compila il file.c
attivo come libreriaBuild all libraries in folder
: Compila tutti i file*.c
presenti nella cartella del file attivo come librerie ad eccezione del filemain.c
che non viene CompilatoDelete Libraries
: Elimina tutte le librerie compilate presenti nella cartella del file attivoMakeheaders
: Crea il file.h
rispettivo al file attivo (richiede makeheaders installato)Build folder clang
: Stessa cosa diBuild folder
ma conclang
invece chegcc
Nel file launch.json
sono presenti varie configurazioni per le rispettive alle task elencate.
Il tutto è pensato per funzionare mediante l'estensione ufficiale Microsoft per C/C++, più info qui
C'è una configurazione già pronta anche per Windows, ma non l'ho mai testata, eventuali miglioramenti son benvenuti, per completarla in maniera decente seguite la guida apposita
È presente anche un piccolo script in Bash chiamato consegna.sh
che restituisce l'archivio da consegnare per i vari laboratori seguendo le regole presenti in AP1920_RegoleLab.pdf
, prende due argomenti in input e sono in ordine il numero di consegna e il numero di matricola, ecco un comando d'esempio
./consegna.sh 1 251489
# Crea l'archivio per la consegna 1 contenente i Lab 1, 2, 3
# tramite il numero di matricola 251489
Lo script richiede di aver tar
installato, anche se sarebbe strano non averlo preinstallato