Entwicklerpages
Mitglied
Hallo Community!
Ich versuche mich gerade an einer (extrem einfachen) Game Engine (2D). Dazu benutze ich die SDL und zum übersetzten cmake (Die GE soll auf allen System laufen). Nun habe ich mir länger die Frage gestellt ob ich die GE als static library oder als shared library anbieten möchte. Ich selbst würde ehr zu shared neigen allerdings habe ich da noch so ein paar denkfehler. Erstens: Kann man zu einer Shared Library eine Static Library dazulinken (die SDL, damit man später nicht mehr darauf zugrefien muss sondern einfach nur meine GE dazulinkt und die Header einbindet) Zweitens: Unter Linux/Unix gibt es ja die lieben shared objects (.so) unter Mac die dynamic librarys (.dylib - ich entwickle auch auf mac) unt unter windows die achsotollen Dynamic Link Libraries (.dll) Soweit ich weis arbeiten .so und .dylib gleich was das importieren angeht (Ich bezeihe mich hier auf die Importheader). Wenn ich das richtig verstandne habe reicht es aus sie beim Übersetzten dem Linker mitzugeben und die Headerdatein im Code anzugeben, woebi die Header wie bei Static Librarys ganz normal (also ohne iergendwelche Import/Export Anweisungen) sind. Unter Windows ist das ja aber vollkomen anders. Dem Linker muss man eine .lib Datei mit den benötigten Informationen für die dll mitgeben und die Headerdatein enthalten Import/Export befehle. Was würdet ihr machne? Shared oder Static? Wenn shared, wie sollte ich das mit dne dlls machen? Unmengen an Präprozessor befehlen?
Wäre nett wenn ihr mir helfen könntet
Ich versuche mich gerade an einer (extrem einfachen) Game Engine (2D). Dazu benutze ich die SDL und zum übersetzten cmake (Die GE soll auf allen System laufen). Nun habe ich mir länger die Frage gestellt ob ich die GE als static library oder als shared library anbieten möchte. Ich selbst würde ehr zu shared neigen allerdings habe ich da noch so ein paar denkfehler. Erstens: Kann man zu einer Shared Library eine Static Library dazulinken (die SDL, damit man später nicht mehr darauf zugrefien muss sondern einfach nur meine GE dazulinkt und die Header einbindet) Zweitens: Unter Linux/Unix gibt es ja die lieben shared objects (.so) unter Mac die dynamic librarys (.dylib - ich entwickle auch auf mac) unt unter windows die achsotollen Dynamic Link Libraries (.dll) Soweit ich weis arbeiten .so und .dylib gleich was das importieren angeht (Ich bezeihe mich hier auf die Importheader). Wenn ich das richtig verstandne habe reicht es aus sie beim Übersetzten dem Linker mitzugeben und die Headerdatein im Code anzugeben, woebi die Header wie bei Static Librarys ganz normal (also ohne iergendwelche Import/Export Anweisungen) sind. Unter Windows ist das ja aber vollkomen anders. Dem Linker muss man eine .lib Datei mit den benötigten Informationen für die dll mitgeben und die Headerdatein enthalten Import/Export befehle. Was würdet ihr machne? Shared oder Static? Wenn shared, wie sollte ich das mit dne dlls machen? Unmengen an Präprozessor befehlen?
Wäre nett wenn ihr mir helfen könntet