Standard-Dateien herausfinden



  • Nehmen wir an, ich habe einen recht guten standardkonformen C++-Compiler installiert, der aber auch eine Menge Header und Bibliotheken mitliefert, die zusätzliche Aufgaben übernehmen. Nun möchte ich aus den entsprechenden Ordnern gern alle Dateien herausholen, die zum ISO-Standard gehören. (Alternative Variante: Ich möchte aus den Ordnern alles rausschmeißen, was nicht zum Standard gehört.)
    Bei Header-Dateien ist das ja noch recht einfach: Die Standard-Header sind bekannt und dann guck ich einfach, welche weiteren Header diese einbinden. Schon habe ich alle Header. Doch wie mache ich das mit den anderen Dateien (lib, cpp und was weiß ich nicht noch)? Woher weiß ich, von welchen Dateien zum Beispiel die iostream abhängig ist? Oder gibt es da auch genaue Vorgaben, daß z.B. soundso.lib zum Standard gehört?

    Ich hoffe, ich konnte mein Anliegen jetzt verständlich rüberbringen. Falls nicht, hier nochmal die Kurzfassung: Ich möchte nach einer Compiler- oder IDE-Installation gerne die Dateien, die zum Programmieren von Standard-C++ nötig sind von denen trennen, die nicht zum Standard gehören.
    Bei den Headern ist das kein Problem, da laß ich einfach ein Programm drüberlaufen, der mir alle includes raussucht und diese Dateien dann wiederum nach includes durchsucht. Aber welche c-, cpp- und lib-Dateien nun noch dazugehören, daß weiß ich leider nicht, und deshalb frage ich hier, wie man das rausbekommt.



  • Also bevor ich mir darüber Gedanken mache, würde ich erst einmal nachsehen ob man diese überhaupt trennen kann....

    Ich hab so den stillen Verdacht, dass das schon im Ansatz kläglich scheitert.



  • Wieso sollte sich das nicht trennen lassen? iostream ist zum Beispiel ein Standard-Header, windows.h nicht. Also nehm ich mir iostream, aber windows.h ignoriere ich. Und genauso sollte es doch eigentlich auch mit den cpp und lib-Dateien sein. Oder gibt es cpp-Dateien, die sowohl unerläßlich für den Standard sind und trotzdem Header inkludieren, die nichts mit dem Standard zu tun haben? (So daß zum Beispiel die Datei, die für die Definitionen der Methoden der Klasse ostream zuständig ist, sowas wie conio.h einbindet.)



  • Hallo,
    wieso genügt es Dir nicht die Header rauszuschmeißen ?
    Du kannst ja dann eh keine "nicht standard" funktionen aufrufen.



  • Es geht einfach nur darum, die ganzen Dateien, die dazugehören, mal konkret vor sich zu sehen, ohne daß da anderes Zeug mit bei ist. (Für Deine Variante bräuchte ich übrigens nichtmal die anderen Header rausschmeißen, sondern müßte nur darauf achten, daß ich ausschließlich Standard- oder eigene, in meinem Projekt liegende Dateien per #include einbaue.)


Anmelden zum Antworten