Dev C++

Errori Di Collegamento

Dichiarazioni, definizioni e file mancanti nella costruzione.

Il concetto

Dichiarazioni, definizioni e file mancanti nella costruzione.

Il collegatore lavora dopo la compilazione dei sorgenti. Una funzione può essere dichiarata correttamente e usata nel codice, ma la sua definizione deve essere presente negli oggetti o nelle librerie collegati. Una dichiarazione informa il compilatore; non crea da sola il corpo della funzione.

Nel progetto di esempio saluta è dichiarata in un’intestazione e definita in saluto.cpp. Se compili soltanto main.cpp, il compilatore accetta la chiamata, ma il collegatore non trova la funzione. Devi includere nella costruzione anche saluto.cpp, non copiare il suo contenuto nel file header.

Anche definizioni duplicate possono causare errori: due sorgenti con main o una funzione non inline definita più volte producono conflitti. Risolvi il ruolo dei file prima di cercare librerie sconosciute. Nei primi progetti tutti i file necessari sono quelli che hai scritto.

Procedura passo passo

Una sequenza da eseguire sul proprio computer.

  1. Apri i tre file dell’esempio multi-file.
  2. Leggi la dichiarazione in saluto.h e la definizione in saluto.cpp.
  3. Compila solo main.cpp per osservare la definizione mancante.
  4. Crea un progetto console e includi entrambi i file .cpp.
  5. Costruisci il progetto e verifica che il messaggio venga stampato.

Codice e risultato

Il codice va aperto e compilato in Dev-C++; il riquadro mostra il risultato previsto.

main.cpp

#include "saluto.h"

int main() {
    saluta();
    return 0;
}

saluto.h

#ifndef SALUTO_H
#define SALUTO_H

void saluta();

#endif

saluto.cpp

#include <iostream>
#include "saluto.h"

void saluta() {
    std::cout << "Progetto con tre file\n";
}

Risultato atteso

Progetto con tre file

Questo riquadro è una previsione didattica, non una console che esegue il C++ nel browser.

Scarica l’esempio

Controllare il risultato

Confronta ciò che accade con una previsione formulata prima della prova.

ControlloRisultato o criterio
File inclusimain.cpp e saluto.cpp nella costruzione
Dichiarazionesaluto.h incluso dove serve
RisultatoProgetto con tre file dopo una ricostruzione

Errori da evitare

Le cause da controllare prima di ripetere l’operazione.

  • Scambiare una dichiarazione per una definizione.
  • Aprire saluto.cpp senza aggiungerlo al progetto.
  • Aggiungere un secondo main per tentare di eliminare un errore.

Riferimenti: Compilazione: documentazione ufficiale.