Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hey Leute,

man kann sein Programm ja statisch oder dynamisch Linken.

Ich arbeite mit Code Blocks und den gnu compiler.

wie sehe ich jetzt ob ich dynamisch oder statisch linke und wie kann ich das ändern?

vor allem was ist besser was würdet ihr empfehlen?

was hat welche vor und nachteile?

wär cool wenn ihr mir das erklären könntet

Geschrieben

Ganz einfach gesagt: Statisches Linken passiert zur Compilezeit, dynamisches Linken zur Laufzeit.

wie sehe ich jetzt ob ich dynamisch oder statisch linke und wie kann ich das ändern?
Was linkst du denn?

vor allem was ist besser was würdet ihr empfehlen?

was hat welche vor und nachteile?

Kommt drauf an. Das hast du schon gelesen?
Geschrieben

Ja habe ich;-)

Ja ich schreib zum beispiel ein programm, wo ich selber klassen erzeug und die in header files packe.

oder ich benutze halt header files von der c++ standarf libary, und wie kann ich dann wählen wie ich linke?

  • 2 Wochen später...
Geschrieben

ich hätte zu diesem thema nochmal eine frage, hab ja soweit alles mittlerweile verstanden,

aber wenn ich ja zum beispiel iostream inklude, wird ja die c++ standard bibliothek benötigt, sprich sie wird dynamisch gelinkt.

wo sehe ich denn die anweisung dass sie gelinkt wird? oder ist das einfach bei jedem linker standardmäßig eingestellt dass sie automatisch dynamisch gelinkt wird?

Geschrieben
aber wenn ich ja zum beispiel iostream inklude, wird ja die c++ standard bibliothek benötigt, sprich sie wird dynamisch gelinkt.
Muss nicht dynamisch sein.

wo sehe ich denn die anweisung dass sie gelinkt wird?
In den Linkereinstellungen deiner Entwicklungsumgebung. Die wirft ja für dich den Linker an.

oder ist das einfach bei jedem linker standardmäßig eingestellt dass sie automatisch dynamisch gelinkt wird?
Ich kenne nicht jeden Linker. Aber manche Entwicklungsumgebungen linken solche Bibliotheken automatisch.
Geschrieben

ok, aber da ich ja nichts einstellen musste und die .exe nicht wirklich sehr groß sind geh ich mal von aus sie werden dynamisch gelinkt.

in den linker einstellungen kann ich ja nur einstellen wenn er was statisch linken soll.

also bei code blocks mit gnu gcc compiler( weiß nicht ob der linker n extra namen hat)

und ist es bei jedem linker gleich die anweisung dynamisch zu linken oder verschieden?

dass muss ich doch in den quellcode schreiben oder?

Geschrieben
in den linker einstellungen kann ich ja nur einstellen wenn er was statisch linken soll.
Kann ich mir zwar nicht vorstellen, aber wenn du meinst.

also bei code blocks mit gnu gcc compiler( weiß nicht ob der linker n extra namen hat)
Der dazugehörige Linker heißt ld. Der Compiler kann aber den Linker aufrufen und bestimmte Kommandozeilenparameter an ihn weitergeben.

und ist es bei jedem linker gleich die anweisung dynamisch zu linken oder verschieden?
Verschieden.

dass muss ich doch in den quellcode schreiben oder?
Im Code steht das nur, wenn du die Programmierschnittstelle des dynamischen Linkers benutzt (dlopen/dlsym bzw. LoadLibrary/GetProcAddress). Sozusagen dynamisches Linken von Hand. Das macht man aber üblicherweise nur dann, wenn man zur Laufzeit prüfen will, ob eine bestimmte Funktion einer bestimmten dynamischen Bibliothek vorhanden ist, beispielsweise dann, wenn das Programm auch ohne diese Funktion klarkommt.

Es gibt Compiler, bei denen du Direktiven für statisches Linken in den Code schreiben kannst, aber es gibt dafür keine standardisierte Möglichkeit.

Geschrieben

Ok, also kann auf jeden fall in den linker einstellungen wählen welche static link libaries er statisch linken soll.

wie ich ihm einfach so sagen kann dass er dynamisch machen soll weiß ich leider nicht, außer halt wie du sagtest, über die schnittstelle.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...