Lib gegen ander Libs linken ...
-
Ich hoffe bin hier richtig, hat nix Mit der MFC zu tun, aber mit dem VC 6.0 compiler.
aich habe nen quasi modularen aufbau, will aber Dlls vermeiden, da ich klassen exportieren will ....
Also hab ich Libs (im moment 3 stck) die Geraetespezifische details implementieren. Und ich hab eine Masterlib, die die details gegenueber den anwendern verbirgt, Klassen zum einheitlichen zugriff bereitstellt.
wenn nun ne neue geraeteklasse hinzukommt, muss ich nur ne lib fuer erstellen, und in der Master-lib einen aufruf erzeugen der die Funktionalitaet der anderen lib anzieht ...
so weit so gut ...
die einzige sache die mich aergert, iss dass die funktionalitaet in mehrere libs aufgeteilt isst, also ich bei den clients (.exe) nur auf eine lib zugreife, aber bei den projekteinstellungen alle 4 libs anziehen muss.
Isses nu moeglich, zu der masterlib den code der anderen 3 Libs hinzuzulinken, so dass der Anwender (programmierer der exe datei) nur noch die masterlib zulinken muss ?
Wie gesagt, andelt sich um VC 6.0 compiler ...
Ciao ...
-
Hem, warum willst du das anders haben? Gerade DEN Vorteil der Modularität willst du jetzt wieder weg haben. Du widersprichst dir. Worum geht es dir eigentlich? Doch nur darum, das der Benutzer anstatt einer, drei Libs angeben muß. Mehr nicht?
Stell dir doch mal das Scenario mit der Standard-C++-Lib vor: du benutzt sie in deinen Libs. Andere Libs benutzen diese ebenfalls. Jetzt will der User deine Lib und die genannten "anderen" ebenfalls in seiner Anwendung verlinken. Was würde passieren, wenn die Std-C++-Lib in jeder dieser Libs mit drin wäre?
Genau, alles doppelt gemoppelt! Was man ja überhaupt nicht haben will!
Genau das gleiche mit deinen eigenen drei Libs. Das sind nunmal eigene Libs, DAS ist der Sinn.
Wenn du sie in einer Lib-Datei haben willst: mach wirklich ein Projekt draus.
-
Erst mal muss eins geklärt sein:
Verwendet die Applikation funktionnen aus der Geraete-lib? Oder wird die Geraete-lib nur über die Master-lib verwendet? Falls die applikation auf die Geraete-lib zugreif bleibt dir keine andere möglichkeit als die Geraete-lib in der Applikation zu linken, da du sonst ne Menge unresolved externals bekommt (die master-lib exoprt ja keine Geraete-lib sachen).
Falls die applikation nur die Master-lib verwendet spicht nichts dagegen, must nur bei den linker-optionen angeben. Hab leider VC 6 mehr.. im .NET würdest du es unter Librarian->General->Additional Dependencies finden.