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 iscanf_s
.MOD2.c wywołuje funkcje graficzne o nazwie
myline
imycircle
, 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:
W MAIN.obj odwołanie do
func1
jest rozpoznawane przy użyciu definicji w MOD1.obj; odwołanie dofunc2
jest rozpoznawane przy użyciu definicji w MOD2.obj.W MOD1.obj odwołania do
printf_s
iscanf_s
są rozpoznawane przy użyciu definicji w bibliotece, które znajduje konsolidator o nazwie w MOD1.obj.W MOD2.obj odwołania do
myline
imycircle
są rozpoznawane przy użyciu definicji w pliku MYGRAPH.lib.