Statische Bibliothek aus Engine erstellen
-
In der Bibliothek ist nur "der compilierte Code" (also größtenteils der Inhalt der cpp-Dateien, wenn man das grob so formulieren darf). Die Deklarationen musst du weiterhin mitliefern - als Header-Datei(en).
MfG SideWinder
-
D.h. also, ich muss alle Klassenheader "Klasse1.h" bis "KlasseX.h" mit der Bibliothek mitgeben? Damit kann sich doch jemand den Aufbau meines Codes anschauen und verändern.
Wie kann ich das verhindern? Ist da eine .dll besser geeignet?
-
Das wirst du nicht verhindern können. Nein, eine DLL ist da genauso ungeeignet. Ja, die Header-Dateien kann sich jeder ansehen, letzten Endes muss der Compiler aber davon wissen - und damit landet der Code wie auch immer in einer "Klartext-Form" beim Benutzer. Während er die Dinge die bereits in der Bibliothek liegen nicht einsehen kann da diese bereits compiliert vorliegen. Bzw. er kann zumindest den Source nicht einsehen.
MfG SideWinder
-
Warum immer dieses restriktive Verhalten?
Ich sage dir gleich, je restriktiver desto weniger Nutzer am Ende. In Zeiten von weit verbreiteten Open Source Bibliotheken tun sich "normale" Nutzer sowas nicht mehr an.
Und wenns gut genug für eine kommerzielle Anwendung wäre, würdest du diese Frage nicht stellen :).
-
Scorcher24 schrieb:
Warum immer dieses restriktive Verhalten?
Ich sage dir gleich, je restriktiver desto weniger Nutzer am Ende. In Zeiten von weit verbreiteten Open Source Bibliotheken tun sich "normale" Nutzer sowas nicht mehr an.
Und wenns gut genug für eine kommerzielle Anwendung wäre, würdest du diese Frage nicht stellen :).Aus dem einfachen Grund, dass das eine DirectX-Engine ist, die oft im Speicher herumspielt. Sollte da ein Nutzer auch nur eine Kleinigkeit verändern, könnte das fatale Folgen für den Speicher haben
Kommerziell soll das eigentlich nicht werden, doch ich arbeite seit Monaten daran und muss den Code noch an vielen Ecken verbessern. Darum bleibt er erstmal Closed Source.Noch eine kurze Frage: Ich merke, dass wenn ich das Release-Build der Bibliothek nehme, sie dann nur mit der Release-Version der Anwendung kompatibel ist, gleiches bei Debug.
Kann ich das irgendwie vereinheitlichen, sodass man mit beiden "Modi" arbeiten kann, ohne zwei verschiedene libs zu haben?Danke außerdem für eure Hilfe.
-
Wenn wer darin rumpfuscht, ist das ja nicht deine Schuld.
-
Scorcher24 schrieb:
Wenn wer darin rumpfuscht, ist das ja nicht deine Schuld.
Im Rahmen der "Benutzerfreundlichkeit" ist das schon mein Problem. Wenn etwas nicht funktioniert, bin ich dafür verantwortlich, unabhängig davon, ob der Code verändert worden ist oder nicht.
-
Also erstens kann man nur mit den Headern schlecht pfuschen und wenn nur auf binär ebene an den Libs oder an der Binary selbst.
Bei einem OpenSource Produkt kann man anhand dessen was im SVN ist, beweisen, dass der Code funktioniert.
Du machst dir zuviele falsche Gedanken.
-
Naja, das ist Ansichtssache, da kann man sich darüber streiten
Ich hoffe noch auf eine Antwort auf folgende Frage:
Noch eine kurze Frage: Ich merke, dass wenn ich das Release-Build der Bibliothek nehme, sie dann nur mit der Release-Version der Anwendung kompatibel ist, gleiches bei Debug.
Kann ich das irgendwie vereinheitlichen, sodass man mit beiden "Modi" arbeiten kann, ohne zwei verschiedene libs zu haben?
-
Ich dränge das nochmal nach oben, da ich das noch dringend brauche.
-
Nein, das geht nicht (da jede Konfiguration ihre eigene Basis-Laufzeitbibliotheken benötigt).