mikrocontroller.net

Forum: PC-Programmierung [C/C++ unter Windows] generelle Frage zu der Funktionsweise von Bibliotheken


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Ahmad Mahmad (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, folgendes beschäftigt mich:
Gehen wir mal davon aus, dass ich über VS ein C++ Projekt erstelle.
Nun folgende Fragen

1. Wenn ich in meinen Quellcode eine oder mehrere Bibliotheken verlinke 
z.B. iostream und daraus die Funktion "cout" nehme und das ganze dann 
anschließend compiliere (und linke) bzw. zu einer ausführbaren Programm 
umwandle, werden dann die ungenutzten Funktionen aus der Datei iostream 
mit kompiliert?

Oder könnte es sein, dass die Datei iostream bereits vorkompiliert ist 
und beim umwandeln des Quellcodes gar nicht erst eingebunden wird, 
sondern nur auf den Ort verwiesen wird?

: Verschoben durch Moderator
Autor: Irgend W. (Firma: egal) (irgendwer)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Du solltest dir mal Gedanken machen warum man den ganzen Vorgang in 
Compilieren und Linken unterteilt hat und was diese beiden Teile genau 
machen.

Autor: Stefanus F. (Firma: der mit dem Helfersyndrom) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ahmad Mahmad schrieb:
> werden dann die ungenutzten Funktionen aus der Datei iostream
> mit kompiliert?

Ja, alle Funktionien aus allen eingebundenen *.c Dateien werden 
mitcompiliert. Es ist jedoch einstellbar, ob der Linker alle oder nur 
die benötigten Funktionen in das ausführbare Programm rein packt.

Wobei man bei Windows häufig vorhandene Bilbiotheken (*.dll) einbindet, 
die sind schon compiliert. Durch das einbinden der *.h Dateien machst du 
dem Compiler lediglich klar, welche Funktionen es gibt und welche 
parameter sie haben. Sie werden jedoch nicht zum Bestandteil deines 
Programms.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.