Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Frage : Lib's und Header Files

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.11.2018, 13:16 Uhr
Anyhow1980



Hallo Community,

ich habe mal eine ganz blöde Frage, aber habe in Google noch keine konkrete Antwort gefunden. Ich komme eigentlich aus der .NET Welt, und bon in C++ noch eine Anfänger Also folgendes:

Wenn ich eine Projekt (Klassenbibliothek) übersetze, und eine Statische Lib erzeuge, habe ich ja meine .lib Datei.
Will ich nun diese lib in eine Exe verwendet bzw. linken, brauche ich nicht nur die lib sonder auch die ganzen header files. Aber warum???

sind die Header Informationen nicht auch in den mit drin Lib drin?

Muss ich also bei der Exe als input (VS) die lib geben, und bei includes die dazugehören Headers angeben?

Ich frage deshalb, weil ich ja bspw, in .NET beides in einem habe

Zudem sind die "Release" Libs viel größer als die "Debug" libs .. warum is das so?

Dieser Post wurde am 22.11.2018 um 13:25 Uhr von Anyhow1980 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.11.2018, 21:27 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat:
Will ich nun diese lib in eine Exe verwendet bzw. linken, brauche ich nicht nur die lib sonder auch die ganzen header files. Aber warum???

weil der Compiler die Funktionen sonst nicht kennt, die in der *.lib drin sind. Ausserdem kann er keine Typenüberprüfungen vornehmen, bzw. ganz allgemein feststellen, ob eine Funktion auch richtig aufgerufen wird; - also überprüfen, ob die Parameter übereinstimmen.


Zitat:
sind die Header Informationen nicht auch in den mit drin Lib drin?

Im Prinzip ja, aber die Dateien werden vom Compiler nicht angerührt, wenn er ein Programm übersetzt. Den Compiler interessieren nur die Header-Dateien. Wenn er die nicht bekommt und Du eine Funktion aus der Lib aufrufst, wird er Dir das mit 'ner Fehlermeldung quittieren. Erst der Linker fügt den vom Compiler erzeugten Code mit dem Code aus Bibliotheken zusammen und baut daraus schliesslich die exe-Datei.


Zitat:
Zudem sind die "Release" Libs viel größer als die "Debug" libs .. warum is das so?

Gute Frage, das weis ich auch nicht. - Ich könnte mir allerdings vorstellen, dass in den Linkeroptionen von Visual C++ voreingestellt ist, dass er noch jede Menge weiterer Dateien mit einfügt, die man für ein bestimmtes Projekt eigentlich gar nicht braucht. Aber das ist jetzt wie gesagt geraten.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: