Ich habe ein Framework (in C++), das von einigen Bibliotheken von Drittanbietern abhängig ist. Wenn ich eine statische Version des Frameworks kompiliere Bibliothek Framework sind keine zusätzlichen Abhängigkeiten erforderlich, d. h. die lib
Dateien der Bibliotheken des dritten Teils werden nicht benötigt. Wenn ich das gleiche Framework als DLL
werden nun zusätzliche Abhängigkeiten benötigt, da ich sonst Verknüpfungsfehler erhalte. Ich kann erraten, warum dies geschieht, aber möchte eine konkrete Antwort/Erklärung, um zu verstehen, was passiert.
EDIT: Nur zur Klarstellung: Ich entwickle ein Framework, das als lib
und als dll
y dann in einem(n) (ausführbaren) Projekt verwendet. Beim Kompilieren des Frameworks als lib
und Funktionen aus einer Bibliothek eines Drittanbieters zu verwenden, benötige ich keine zusätzlichen Abhängigkeiten. Ein Projekt, das nun aber die lib
Datei (die das Gerüst darstellt) muss die 3rd party lib
Dateien. Wenn ich das Framework als dll
es gibt mir Verknüpfung Fehler, wenn ich die 3. Teil Bibliotheken der Rahmen ist technisch abhängig von angeben. Zum Beispiel: Ich habe ein paar Klassen, die Funktionen aus Ogre3D aufrufen. Diese Klassen sind kompiliert als lib
Datei. Ich brauche keine Verknüpfung mit OgreMain.lib
beim Kompilieren einer lib
der Klassen. Andererseits, wenn ich beim Kompilieren einer dll
Version der gleichen Klassen muss ich nun gegen OgreMain.lib