Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Richiamo di CL da parte del linker

CL richiama automaticamente il linker dopo la compilazione, a meno che non venga utilizzata l'opzione /c. CL passa al linker i nomi dei file obj creati durante la compilazione e i nomi di qualsiasi altro file specificato nella riga di comando. Il linker utilizza le opzioni elencate nella variabile di ambiente LINK. È possibile utilizzare l'opzione /link per specificare le opzioni del linker nella riga di comando CL. Con le opzioni che seguono l'opzione /link viene eseguito l'override delle opzioni presenti nella variabile di ambiente LINK. Le opzioni riportate nella tabella che segue consentono di disattivare il collegamento.

Opzione

Descrizione

/c

Compilazione senza collegamento

/E, /EP, /P

Pre-elaborazione senza compilazione o collegamento

/Zg

Generazione di prototipi di funzione

/Zs

Controllo della sintassi

Per ulteriori informazioni sul collegamento, vedere Opzioni del linker.

Si supponga di compilare tre file di origine C: MAIN.c, MOD1.c e MOD2.c. Ogni file include una chiamata a una funzione definita in un file differente:

  • MAIN.c chiama la funzione func1 in MOD1.c e la funzione func2 in MOD2.c.

  • MOD1.c chiama le funzioni della libreria standard printf_s e scanf_s.

  • MOD2.c chiama le funzioni di grafica denominate myline e mycircle, che sono definite in una libreria denominata MYGRAPH.lib.

Per compilare questo programma, utilizzare la seguente riga di comando:

CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib

CL compila prima i file di origine C e crea i file oggetto MAIN.obj, MOD1.obj e MOD2.obj. Il compilatore inserisce il nome della libreria standard in ogni file obj. Per informazioni più dettagliate, vedere Utilizzo della libreria di runtime.

CL passa i nomi dei file obj, insieme al nome MYGRAPH.lib, al linker. Il linker risolve i riferimenti esterni nel modo seguente:

  1. In MAIN.obj, il riferimento a func1 viene risolto utilizzando la definizione in MOD1.obj. Il riferimento a func2 viene risolto utilizzando la definizione in MOD2.obj.

  2. In MOD1.obj i riferimenti a printf_s e scanf_s vengono risolti utilizzando le definizioni nella libreria che il linker trova specificate all'interno di MOD1.obj.

  3. In MOD2.obj i riferimenti a myline e mycircle vengono risolti utilizzando le definizioni in MYGRAPH.lib.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft