Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

statisches und dynamisches Linken

Empfohlene Antworten

Veröffentlicht

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

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?

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...

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?

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.

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?

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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.