Udostępnij za pośrednictwem


Łączenie

W projekcie języka C++ krok łączenia jest wykonywany po skompilowaniu kodu źródłowego do plików obiektów (*.obj). Konsolidator (link.exe) łączy pliki obiektów w jeden plik wykonywalny.

Opcje konsolidatora można ustawić wewnątrz programu Visual Studio lub poza nim. W programie Visual Studio uzyskujesz dostęp do opcji konsolidatora, klikając prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i wybierając polecenie Właściwości, aby wyświetlić strony właściwości. Wybierz pozycję Konsolidator w okienku po lewej stronie, aby rozwinąć węzeł i wyświetlić wszystkie opcje.

Składnia wiersza polecenia konsolidatora

Po uruchomieniu konsolidatora poza programem Visual Studio można określić dane wejściowe na co najmniej jeden sposób:

  • W wierszu polecenia
  • Używanie plików poleceń
  • W zmiennych środowiskowych

Konsolidator najpierw przetwarza opcje określone w zmiennej LINK środowiskowej, a następnie opcje w kolejności, w której są określone w wierszu polecenia i w plikach poleceń. Jeśli opcja jest powtarzana z różnymi argumentami, ostatni przetworzony ma pierwszeństwo.

Opcje mają zastosowanie do całej kompilacji; nie można zastosować żadnych opcji do określonych plików wejściowych.

Aby uruchomić link.exepolecenie , użyj następującej składni polecenia:

link arguments

Opcje arguments dołączania i nazwy plików można określić w dowolnej kolejności. Opcje są przetwarzane najpierw, a następnie pliki. Użyj co najmniej jednej spacji lub karty, aby oddzielić argumenty.

Uwaga

To narzędzie można uruchomić tylko w wierszu polecenia programu Visual Studio. Nie można go uruchomić z poziomu wiersza polecenia systemu lub z Eksplorator plików.

Wiersz polecenia

W wierszu polecenia opcja składa się z specyfikatora opcji, kreski (-) lub ukośnika (/), a następnie nazwy opcji. Nie można skrócić nazw opcji. Niektóre opcje przyjmują argument określony po dwukropku (:). W ramach specyfikacji opcji nie są dozwolone spacje ani tabulatory, z wyjątkiem ciągu cytowanego w /COMMENT opcji. Określ argumenty liczbowe w notacji dziesiętnej lub języka C. Nazwy opcji i ich argumenty słowa kluczowego lub nazwy pliku nie są uwzględniane wielkości liter, ale identyfikatory jako argumenty są uwzględniane wielkości liter.

Aby przekazać plik do konsolidatora, określ nazwę pliku w wierszu polecenia po poleceniu link.exe . Możesz określić ścieżkę bezwzględną lub względną z nazwą pliku i użyć symboli wieloznacznych w nazwie pliku. Jeśli pominięto rozszerzenie kropki (.) i nazwy pliku, konsolidator zakłada rozszerzenie .obj w celu znalezienia pliku. Konsolidator nie używa rozszerzeń nazw plików ani ich braku do założeń dotyczących zawartości plików. Określa typ pliku, sprawdzając go i odpowiednio przetwarza.

Konsolidator zwraca zero dla powodzenia (bez błędów). W przeciwnym razie zwraca numer błędu, który zatrzymał łącze. Jeśli na przykład konsolidator generuje LNK1104, konsolidator zwraca wartość 1104. W związku z tym najniższa liczba błędów zwrócona w przypadku błędu przez konsolidator wynosi 1000. Wartość zwracana 128 reprezentuje problem z konfiguracją systemu operacyjnego lub pliku config; moduł ładujący nie załadował link.exe pliku lub c2.dll.

Pliki poleceń konsolidatora

Argumenty wiersza polecenia można przekazać do link.exe w postaci pliku polecenia. Aby określić plik polecenia konsolidatora, użyj następującej składni:

link @commandfile

Jest commandfile to nazwa pliku tekstowego. Odstęp lub karta nie jest dozwolona między znakiem (@) i nazwą pliku. Brak rozszerzenia domyślnego; Musisz określić pełną nazwę pliku, w tym dowolne rozszerzenie. Nie można używać symboli wieloznacznych. Możesz określić ścieżkę bezwzględną lub względną z nazwą pliku. Konsolidator nie używa zmiennej środowiskowej do wyszukiwania pliku.

W pliku poleceń argumenty są oddzielone spacjami lub tabulatorami (jak w wierszu polecenia) i znakami nowego wiersza polecenia.

Możesz określić wszystkie lub część wiersza polecenia w pliku polecenia. W poleceniu link.exe można użyć więcej niż jednego pliku polecenia. Konsolidator akceptuje dane wejściowe pliku polecenia tak, jakby został określony w tej lokalizacji w wierszu polecenia. Nie można zagnieżdżać plików poleceń. Konsolidator odzwierciedla zawartość plików poleceń, chyba że /NOLOGO zostanie określona.

Przykład

Następujące polecenie kompiluje bibliotekę DLL. Przekazuje nazwy plików obiektów i bibliotek w oddzielnych plikach poleceń i używa trzeciego pliku poleceń do specyfikacji /EXPORTS opcji:

link /dll @objlist.txt @liblist.txt @exports.txt

Konsolidator rozpoznaje następujące zmienne środowiskowe:

  • LINK i _LINK_, jeśli zdefiniowano. Konsolidator poprzedza opcje i argumenty zdefiniowane w LINK zmiennej środowiskowej i dołącza opcje i argumenty zdefiniowane w _LINK_ zmiennej środowiskowej do argumentów wiersza polecenia przed przetworzeniem.
  • LIB, jeśli jest zdefiniowana. Konsolidator używa ścieżki LIB podczas wyszukiwania obiektu, biblioteki lub innego pliku określonego w wierszu polecenia lub przez /BASE opcję. Używa również ścieżki LIB do znalezienia .pdb pliku o nazwie w obiekcie. Zmienna LIB może zawierać co najmniej jedną specyfikację ścieżki rozdzieloną średnikami. Jedna ścieżka musi wskazywać \lib podkatalog instalacji programu Visual C++.
  • PATH, jeśli narzędzie musi zostać uruchomione CVTRES i nie może znaleźć pliku w tym samym katalogu co link.exe sam. (link.exe wymaga CVTRES połączenia .res pliku).) PATH musi wskazywać \bin podkatalog instalacji programu Visual C++.
  • TMP, aby określić katalog podczas łączenia plików OMF lub .res plików.

Zobacz też

Dokumentacja kompilacji w języku C/C++
Opcje konsolidatora MSVC
Pliki definicji modułu (.def)
Obsługa konsolidatora dla bibliotek DLL załadowanych z opóźnieniem