Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Grundsatzfragen

  1. #1
    Gast

    Question Grundsatzfragen

    Hallo zusammen,

    ich versuche gerade mir c++ anhand des
    Buches von Stoustroup im Selbststudium an-
    zueignen und bin beim Lesen jetzt auf
    einige grundsätzliche Fragen gestoßen.
    Vielleicht kann mir die jemand beantworten?

    1.) Ist die Gesamtheit der Headerdateien
    und Bibliotheken synonym zu verwenden?
    Sprich sind in den Bibliotheken neben
    Headerdateien noch andere Dateien enthalten
    und wenn ja welche?

    2.) Handelt es sich bei Softwarepaketen
    für Linux bei sogenannten Binaries dann
    um compalierte Dateien, sind die damit
    vergleichbar wenn ich ein kleines Programm
    schreibe und das compaliere, kann man das
    also auch als Binary titulieren?

    3.) Kann ich compalierte Programme auf
    beliebigen Unixbasierten Systemen laufen
    lassen?

    4.) Ist c++ wirklich auf c aufgesetzt und
    könnte ich dann ein c-Programm auch mit
    einem c++ Compiler compalieren um ein
    funktionierendes Programm zu erhalten?

    Sorry, wenn ich vielleicht ein wenig dumm
    Frage aber ich studiere neben meiner Arbeit
    auch ein wenig Informatik in den Anfängen
    und auch in einem Fach wie "Konzepte im-
    perativer Programmierung" wird sowas nicht
    erklärt!

    Vielleicht gibt es für derartige Fragen
    ja auch ne FAQ, wenn ja würde mich inter-
    essieren wo?

    Gruß und Danke für Eure Mühe

    Stefan

    ------------------
    ****************************
    Dipl.-Ing.(FH) Forstwirtschaft
    Stefan Feeser

    EMail feeser@feeser.ab.uunet.de
    *************************

  2. #2
    Gast

    Post

    Hi!!!
    also, erstmal der standart spruch: dumme fragen gibt's nicht, höchstens dumme antworten. möglicherweise zählen meine darunter, deshalb bitte ich gegebenenfalls um berichtigung, bzw. um vertiefung .
    zu 1.: weiß ich nicht so ganz was du meinst, sorry .
    Binaries sind compilierte Programme. also ausführbar. und ein selbstgeschriebenes und compiliertes Programm ist also auch ne binary.
    zu 3.:
    also, erstmal muß das ganze natürlich unter nem unix-basierenden system (z.B. Linux ) compiliert worden sein. rein theoretisch ist das Programm auf unixbassierenden systemen jetzt ohne weiteres einsetzbar, praktisch klappt das aber meißtens nicht. die systeme unterscheiden sich teilweise ja in der Lage der libs und noch in vielem anderen systemspezifischeren dingen. sogar bei verschiedenen Linuxdistributionen KANN es zu schwierigkeiten kommen. aber es ist auf jeden fall besser, egal welche UNIX-Variante (SuSE Linux, RedHat Linux, Solaris...) man hat, den Quellcode immer für das vorliegende System nochmal's extra zu compilieren. so ist das programm am besten an das jeweilige system angepasst.
    Im großen und ganzen ist die antwort also nein.
    zu 4.: C++ setzt komplett auf C auf, soll heißen, du kannst beliebige C Programme mit nem C++ compiler compilieren, umgekehrt natürlich nicht. in C++ steckt der gesamte C Syntax drin, er beinhaltet eben noch erweiterungen. trotzdem sollte man C++ nicht als einfaches Update zu C sehen, dazu unterscheiden sich die beiden nun doch wieder zu stark.

    hoffe das hilft dir wenigstens ein bisschen...

    cu
    Peter

  3. #3
    StefanS
    Gast

    Arrow

    Hallo Stefan !

    Zu Punkt 1 : Headerdateien und Bibliotheken (Librarys) sind nicht gleichzusetzen ! Eine Bibliothek enthält zusätzliche Funktionen (in Form einer sog. Objektdatei, .o ), die zugehörige Headerdatei ( .h) enthält nur die Funktionsprototypen, damit der Compiler (nicht Compaler ) weiß, wie diese aufzurufen sind.
    Z.B. kann in einer Headerdatei die Funktion <tt>int zufallszahl()</tt> deklariert werden (der Compiler weiß nun: keine Argumente, liefert eine Ganzzahl zurück), der eigendliche Programmcode aber, der die Zufallszahl erzeugt, steckt bereits in compilierter Form in einer Objektdatei.
    Ganz wichtig: diese Funktionsbibliotheken, die zum Compiler gehören sind nicht zu verwechseln mit dynamisch ladbaren Programmbibliotheken, die in /lib installiert werden !!!

    zu 2 : Binarys sind Binärdateien, also alles was Programmcode in Maschinenverständlicher Form enthält, darunter falle alle ausführbaren Dateien, aber auch oben erwähnte Objektdateien, dynamische Librarys ( .so) ...
    Unter besagten binary-Softwarepaketen versteht man bereits compilierte Programme, die der Anwender nur noch entpacken muss.

    zu 4 : ja !

    Auf wiedertschüss, StefanS

  4. #4
    Gast

    Lightbulb

    Hallo Peter,

    für Deine Hilfe schon mal vielen Dank,
    manches ist mir jetzt klarer!

    Zu 1.) Habe mich wohl wieder mal ein
    wenig zu kompliziert ausgedrückt! Also ein
    neuer Versuch.

    Egal ob bei c oder bei c++ werden doch
    am Programmanfang mittels "include" sogen-
    annte Headerdateien eingebunden, die wenn
    ich es richtig verstanden habe zum einen
    globale Variablen zur Verfügung stellen
    und zum anderen "die Schnittstelle" etwa
    zur Standarteingabe oder Standartausgabe
    bereitstellen. Was die Teile sonst noch
    so machen kommt wohl im Buch weiter hinten,
    interessiert mich aber auch.

    Wenn ich nun einen Compiler nutzen will muß
    ich doch auch das passende Bibliotheken-
    paket installieren. Sind in diesem Paket,
    sprich in den Bibliotheken nur Headerdateien
    vorhanden, was ich mir aber nicht so richtig
    vorstellen kann, oder aber auch andere
    Dateien. Wenn noch andere Dateien in den
    Bibliotheken enthalten sind würde mich
    interessieren welche das sind und was die
    bezwecken.

    Auch würde mich interessieren wie die
    Struktur der Pfade beim Compiler ist, d. h.
    unter welchem Pfad was zu finden ist? Ich
    meine ich weiß zwar inzwischen das die
    Programme i . d. R. unter /usr liegen und
    die Bibliotheken, meines Wissens unter
    /usr/lib aber da gibt es ja noch so viele
    andere Pfade...?

    Du siehst Fragen über Fragen - ich hoffe
    Du oder ein anderer weiß Rat!

    Ciao

    Stefan

    ------------------
    ****************************
    Dipl.-Ing.(FH) Forstwirtschaft
    Stefan Feeser

    EMail feeser@feeser.ab.uunet.de
    *************************

  5. #5
    Gast

    Smile

    Hi Stefan!!!
    ahso, dann ist klar. da haste eben was falsch verstanden. aber StefanS hat das ja schon erklärt. habt euch beim schreiben anscheinend zeitmäßig überschritten, so daß du sein posting noch nicht geleses hast.
    ich erklärt's mal nochmal, so gut ich kann.
    Headerdateien beinhalten eben meißtens nur Deklarationen. dadurch weiß der compiler was einer funktion übergeben werden muß, wenn sie aufgerufen wird, und kann dich drauf aufmerksam machen, falls du mal im eigentlich code deines Programms was falls aufrufst . so läßt sich's relatib gut beschreiben. und die ufnktion selbst steht in ner Library.
    der unterschied läßt sich auch relativ schnell merken, wenn du mal ne library und ne Headerdatei in nem Texteditor öffnest. das was in der Headerdatei steht solltest du mit deine C/C++ kenntnissen mehr oder minder gut verstehen, bei der Library wirts da schon schwerer ^_^.
    also, Headerdateien beinhalten immer normalen C/C++ Code. im grunde könnte man die sachen aus der headerdatei auch in den eigentlichen Source schreiben, aber das wäre zu unübersichtlich, unpraktisch und letztendlich zu kompliziert. so ist alles schön geordnet.

    zu den Pfaden. also, normaleerweise sind unter /usr eher keine Programme . wo die sich befinden hängt immer von dem system und dem anwender und so ab. soche Verzeichnissse sind z.B. /usr/bin /usr/X11/bin und noch viele andere verzeichnisse. das bin steht dabei eben für binär, also ausführbar. also, wenn du irgendein programm suchst, immer erstmal in nem bin verzeichniss nachsehen .
    unter /usr/lib liegen dann meißtens die Librarys. die haben alle ein 'lib' vorne dran stehen. und unter /usr/include finden sich dann schließlich noch die include dateien, also die Headerfiles, die du bei deinem Source mit #include einleitest.

    OK. hoffe das hift dir ein wenig. wenn du noch fragen hast -> posten
    bis denne...

    cu
    Peter

  6. #6
    Gast

    Talking

    Hallo zusammen,

    vielen Dank für Eure Mühe, mir ist jetzt vieles klarer! Hoffentlich kann ich mich
    nach weiterem Lesen/Rumbasteln mal revan-
    chieren.

    Gruß

    Stefan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •