bad reloc address (Keine Bibliotheken verwendet)



  • ... Es hat sich doch schon erledigt. Ich habe, intelligent wie ich bin, noch ein Backup-Verzeichnis gehabt, wo ich brav eure Vorschläge befolgt habe... Stellt sich heraus, dass das gar nicht mein Source-Verzeichnis war. Danke noch mal für die Tipps...
    (So ein Anfängerfehler, könnte mir grade echt so in's Gesicht schlagen...)



  • KN4CK3R schrieb:

    ist nicht das gleiche wie die Trennung in cpp/hpp

    Schon, aber hat das irgendwelche praktischen Auswirkungen? Ich konnte bis jetzt nämlich keine feststellen, und ob das dann hinter den Kulissen keine echte Trennung in cpp/hpp ist, ist mir dann ja eigentlich egal.

    Hauptsache ich hab halt Header und Implementierung sauber voneinander getrennt, ist sonst eben völlig inkonsistent alles in den Header zu implementieren...



  • Oft nennt man solche Template-(und inline-)Implementierungsdateien dann nicht .cpp, sondern irgendwie .inl oder so was.



  • Ok, und was bringt das dann? Also klar, man sieht an der Dateiendung dass es wohl ne template Klasse ist, aber das behebt ja das eigentliche Problem, nämlich die Inkonsistenz nicht.

    Also mich würde eigentlich nur interessieren ob der Ansatz irgendwelche Nachteile gegenüber der klassischen Trennung in cpp/hpp hat.



  • Das ist doch eine akademische Frage, da die getrennte Übersetzung bei Templates nicht funktioniert.



  • In IDEs werden üblicherweise .cpp-Dateien vom Compiler kompiliert, während .hpp und .inl als Header angeschaut werden. Von daher macht es schon einen Unterschied, welche Dateiendung du benutzt.



  • Nexus schrieb:

    In IDEs werden üblicherweise .cpp-Dateien vom Compiler kompiliert, während .hpp und .inl als Header angeschaut werden. Von daher macht es schon einen Unterschied, welche Dateiendung du benutzt.

    Ok, also wenn ich statt TemplateClass.cpp ein TemplateClass.inl verwende ist dass das selbe als hätte ich alles in den Header implementiert?

    Das wäre dann ja optimal, da man trotzdem noch die physikalische Trennung in zwei verschiedene Dateien hätte.



  • happystudent schrieb:

    Ok, also wenn ich statt TemplateClass.cpp ein TemplateClass.inl verwende ist dass das selbe als hätte ich alles in den Header implementiert?

    Wenn du am Ende von ClassTemplate.hpp (es heisst Klassentemplate, nicht Templateklasse) ein

    #include "ClassTemplate.inl"
    

    hast, ja. Das ist zumindest der übliche Weg, um Separation mit Templates zu bewahren.



  • Ok cool, Danke. Wieder was gelernt 🙂


Log in to reply