Basisklasse in library



  • hallo, ich moechte folgendes machen, nur hab bisher noch nicht gemacht, wollte mal eure meinung dazu.

    class basis {
    //...
    };
    
    class abgeleitetA : public basis {
    //...
    };
    

    erstelle ich damit eine statische library klasseA.lib

    class basis {
    //...
    };
    
    class abgeleitetB : public basis {
    //...
    };
    

    erstelle ich damit eine statische library klasseB.lib

    Ein neues projekt nehme ich dann, und nutze dann die beide library, wuerde es complieren oder scheitert es? wenn es funktioniert, liegt die basisklasse dann 2x in exe drin, somit groessere exe? die idee is nur, dass ich viel mehr lib erstellen will, z.B klasseA bis klasseZ, alle von derselben basisklasse abgeleitet. und jenachdem was ich dann in ein neues project brauche, linke ich sie einfach.



  • du musst die basis.cpp ja nicht unbedingt für a-z extra kompilieren. Mach doch eine basis.lib.



  • hallo, ich bins wieder, irgendwie werden die lib dateien sehr gross, also, ich hab die basis klasse und die sehr viele abgeleitete klasse ( ohne lib loesung ) compliert, und es is so knapp 500 KB gross, aber die lib loesung, alleine klasse abgeleiteteA hat schon ca 700 kb, das is doch hammer.
    sag mal, ich hab jez eine basis.lib, die muss doch immer bei abgeleitete klasse mitgelinkt werden, heisst das wieder, das alle abgeleitete klasse die basis.lib drin haben, und wenn ich die abgeleitete klasse a-z benutze, sind es dann 26 x basis klassen drin oder was, kann mir bitte jemand noch ne loesung verraten, wie ich da am besten machen kann, stecke naemlich hier fest



  • Klingt so, als würdest du mit Debugsymbolen kompilieren und/oder die CRT statisch linken.

    Wieso überhaupt so viele lib-Dateien? Du kannst auch alles in eine packen.
    Falls du darüber besorgt bist, dass du dann mehr als nötig linkst: das ist nicht der Fall. Aus der lib-Datei werden nur diejenigen Module "entnommen", die auch von deinem Programm referenziert werden.



  • Athar schrieb:

    Klingt so, als würdest du mit Debugsymbolen kompilieren und/oder die CRT statisch linken.

    Wieso überhaupt so viele lib-Dateien? Du kannst auch alles in eine packen.
    Falls du darüber besorgt bist, dass du dann mehr als nötig linkst: das ist nicht der Fall. Aus der lib-Datei werden nur diejenigen Module "entnommen", die auch von deinem Programm referenziert werden.

    achso, daran hatte ich nicht gedacht, vielen dank fuer diese tip., ich dachte alles wird entnommen, haha cool, werde ich sofort weitermachen


Anmelden zum Antworten