Udostępnij za pośrednictwem


CL wywołuje konsolidator

CL automatycznie wywołuje program łączący po kompilacji, jeśli nie jest używana opcja/c.CL przekazuje do linker nazwy plików obj. tworzony podczas kompilowania i nazwy innych plików określonego w wierszu polecenia.Program łączący korzysta z opcji wymienionych w zmiennej środowiskowej łącze.Opcja /link do określania opcji linker w wierszu polecenia CL.Opcje, które następują opcją /link zastępują w zmiennej środowiskowej łącze.Opcje w poniższej tabeli odrzuca połączenie.

Opcja

Opis

/c

Kompiluj bez łączenia

/ /P E, /EP,

Przetwarzanie wstępne bez kompilowania i łączenia

/Zg

Generowanie prototypów funkcji

/Zs

Sprawdzanie składni

Aby uzyskać więcej informacji na temat łączenia, zobacz Opcje Linker.

Przykład

Załóżmy, że kompilacja C trzy pliki źródłowe: MAIN.c, MOD1.c i MOD2.c.Każdy plik zawiera wywołanie funkcji zdefiniowane w innym pliku:

  • MAIN.c wywołuje funkcję func1 w MOD1.c i funkcja func2 w MOD2.c.

  • MOD1.c wywołuje funkcje biblioteki standardowej printf_s i scanf_s.

  • MOD2.c wywołuje funkcje grafiki o nazwie myline i mycircle, które są zdefiniowane w bibliotece o nazwie MYGRAPH.lib.

Aby skompilować ten program, kompilacji z następującego wiersza polecenia:

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

Najpierw CL kompiluje pliki źródłowe C i tworzy pliki obiektu, MAIN.obj, MOD1.obj i MOD2.obj.Kompilator umieszcza nazwę biblioteki standardowej w każdym pliku .obj.Aby uzyskać bardziej szczegółowe informacje, zobacz Wykorzystania Run-Time Library.

CL przekazuje nazwy plików .obj, wraz z nazwą MYGRAPH.lib, program łączący.Program łączący usuwa odwołania zewnętrzne w następujący sposób:

  1. W MAIN.obj, odniesienie do func1 został rozwiązany za pomocą definicji w MOD1.obj; odniesienie do func2 został rozwiązany za pomocą definicji w MOD2.obj.

  2. W MOD1.obj, odniesienia do printf_s i scanf_s są rozwiązywane przy użyciu definicje w bibliotekę, w której znajduje się program łączący o nazwie w MOD1.obj.

  3. W MOD2.obj, odniesienia do myline i mycircle są rozwiązywane przy użyciu definicje w MYGRAPH.lib.

Zobacz też

Informacje

Opcje kompilatora

Ustawianie opcji kompilatora