CL wywołuje program łączący
CL wywołuje automatycznie łączący po kompilacji, chyba że używana jest opcja/c.Przekazuje CL program łączący nazwy plików .obj utworzone podczas kompilacji i nazwy innych plików, określonego w wierszu polecenia.Program łączący korzysta z opcji na liście zmiennej środowiskowej łącze.Aby określić opcje wiersza polecenia CL linker, można użyć opcji /link.Opcje, które należy wykonać opcja /link zastępują w zmiennej środowiskowej łącze.W poniższej tabeli przedstawiono opcje Pomiń łączenia.
Opcja |
Opis |
---|---|
/c |
Skompiluj bez łączenia |
/ /P E, /EP, |
Preprocesorem bez kompilacji lub łączenia |
/ZG |
Generowanie prototypy funkcji |
/ZS |
Sprawdzanie składni |
Aby uzyskać dalsze szczegóły na temat łączenia, zobacz Opcje Linker.
Przykład
Załóżmy, że są kompilowania plików źródłowych trzy C: MAIN.c, MOD1.c i MOD2.c.Każdy plik zawiera wywołanie funkcji, zdefiniowany w innym pliku:
MAIN.c wywołuje funkcję func1 w MOD1.c, a 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 utworzyć ten program, kompilacji z następującego wiersza polecenia:
CL MAIN.c MOD1.C MOD2.C MYGRAPH.lib
CL najpierw 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ć więcej informacji, zobacz Wykorzystania Run-Time Library.
CL przekazuje nazwy plików .obj, wraz z nazwą MYGRAPH.lib, program łączący.Program łączący ustali odwołania zewnętrzne w następujący sposób:
W MAIN.obj, odniesienie do func1 został rozwiązany przy użyciu definicji w MOD1.obj; odniesienie do func2 został rozwiązany przy użyciu definicji w MOD2.obj.
W MOD1.obj, odniesienia do printf_s i scanf_s są rozwiązywane przy użyciu definicji w bibliotekę, w której znajduje się program łączący o nazwie w MOD1.obj.
W MOD2.obj, odniesienia do myline i mycircle są rozwiązywane przy użyciu definicji w MYGRAPH.lib.