Was ist die Verwendung von .exp und was ist der Unterschied zwischen .lib und .dll?

Lesezeit: 2 Minuten

Benutzeravatar von Vineel Kumar Reddy
Vineel Kumar Reddy

Was nützt .exp beim Kompilieren und Linken? Was ist der Unterschied zwischen .lib und .dll? Ich weiß, dass .lib verwendet wird, während das Verknüpfen und .dll verwendet werden, wenn das Programm ausgeführt wird. Aber was genau ist der Unterschied zwischen .lib und .dll?

Enthält die .lib-Datei nicht den Code für die Funktionen, die aus .dll-Dateien stammen? Was ist die Notwendigkeit, zwei separate Dateien zu verwenden?

Bitte klären Sie.

Im Falle einer Importbibliothek für eine DLL ist dies die .lib-Datei nicht überhaupt keinen tatsächlichen Code enthalten. Es enthält im Grunde nur eine Liste der Funktionen in der zugehörigen DLL – genug für den Linker, um einen Verweis auf diese DLL in etwas einzubetten, das mit der Bibliothek verknüpft ist, aber nicht viel mehr.

Eine .exp-Datei ist eine Exportdatei – im Grunde genauso wie eine .lib-Datei. Es wird (zumindest hauptsächlich) verwendet, wenn Sie eine zirkuläre Abhängigkeit haben. Angenommen, Sie haben eine DLL, die als Plug-in für eine ausführbare Datei fungiert. Die ausführbare Datei stellt einige exportierte Funktionen zur Verwendung durch Plug-In-DLLs bereit, muss aber auch in der Lage sein, einige Funktionen in den Plug-Ins aufzurufen (z. B. um ein Plug-In zu laden und zu initialisieren).

Die DLL wird nicht verknüpft, bis die ausführbare Datei erstellt wurde, um eine .lib-Datei bereitzustellen – aber die ausführbare Datei wird nicht verknüpft, bis die DLL erstellt wurde, um eine .lib-Datei bereitzustellen. Um die Abhängigkeit zu unterbrechen, führen Sie den Linker für die ausführbare Datei aus, die fehlschlägt (weil sie keine .lib-Datei für die DLL finden kann), aber Wille eine .exp-Datei erzeugen. Anschließend verknüpfen Sie die DLL mit der .exp-Datei für die ausführbare Datei. Sie können den Link dann erneut ausführen, um die ausführbare Datei zu erstellen, indem Sie die .lib-Datei für die DLL verwenden.

1419270cookie-checkWas ist die Verwendung von .exp und was ist der Unterschied zwischen .lib und .dll?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy