Udostępnij za pośrednictwem


CL wywołuje konsolidator

Cl automatycznie wywołuje konsolidator po skompilowaniu, chyba że jest używana opcja /c. Cl przekazuje do konsolidatora nazwy plików .obj utworzonych podczas kompilowania oraz nazwy innych plików określonych w wierszu polecenia. Konsolidator używa opcji wymienionych w zmiennej środowiskowej LINK. Opcji /link można użyć, aby określić opcje konsolidatora w wierszu polecenia CL. Opcje, które są zgodne z /link opcji zastąpić te w zmiennej środowiskowej LINK. Opcje w poniższej tabeli pomijają łączenie.

Opcja Opis
/c Kompilowanie bez łączenia
/E, /EP, /P Wstępne przetwarzanie bez kompilowania lub łączenia
/Zg Generowanie prototypów funkcji
/Zs Sprawdzanie składni

Aby uzyskać więcej informacji na temat łączenia, zobacz MSVC Linker Options (Opcje konsolidatora MSVC).

Przykład

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

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

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

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

Aby skompilować ten program, skompiluj go przy użyciu następującego wiersza polecenia:

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

CL najpierw kompiluje pliki źródłowe języka C i tworzy pliki obiektów MAIN.obj, MOD1.obj i MOD2.obj. Kompilator umieszcza nazwę standardowej biblioteki w każdym pliku .obj. Aby uzyskać więcej informacji, zobacz Używanie biblioteki czasu wykonywania.

CL przekazuje nazwy plików .obj wraz z nazwą MYGRAPH.lib do konsolidatora. Konsolidator rozpoznaje odwołania zewnętrzne w następujący sposób:

  1. W MAIN.obj odwołanie do func1 jest rozpoznawane przy użyciu definicji w MOD1.obj; odwołanie do func2 jest rozpoznawane przy użyciu definicji w MOD2.obj.

  2. W MOD1.obj odwołania do printf_s i scanf_s są rozpoznawane przy użyciu definicji w bibliotece, które znajduje konsolidator o nazwie w MOD1.obj.

  3. W MOD2.obj odwołania do myline i mycircle są rozpoznawane przy użyciu definicji w pliku MYGRAPH.lib.

Zobacz też

Opcje kompilatora MSVC
Ustawianie opcji kompilatora