Buchempfehlung C-Programmierung unter Linux
Hi, wie Ihr ja evt. schon gemerkt habt, darf ich mich derzeitig ein wenig mit C auseinandersetzen. Ich suche jetzt ein gutes Buch, welches Dinge wie Aufbau von Projekten in C, linken von Dateien etc. erklärt. Ich muß zugeben, der Unterschied zwischen .o, .a, .so etc. ist mir bisher nicht so richtig klar geworden, da die ANSI-C Bücher darauf nicht eingehen. (Ist ja auch Compilerspezifisch). Vielen Dank Volker -- Volker Kroll 4mino AG Chief System Developer Chausseestr. 52 b volker.kroll@4mino.de D-10115 Berlin Tel.: +49-30-2888490-0 Fax.: +49-30-2888490-99
Hallo Volker!
wie Ihr ja evt. schon gemerkt habt, darf ich mich derzeitig ein wenig mit C auseinandersetzen. Ich suche jetzt ein gutes Buch, welches Dinge wie Aufbau von Projekten in C, linken von Dateien etc. erklärt. Ich muß zugeben, der Unterschied zwischen .o, .a, .so etc. ist mir bisher nicht so richtig klar geworden, da die ANSI-C Bücher darauf nicht eingehen. (Ist ja auch Compilerspezifisch).
Also, generell für C/C++ kann ich von John R. Hubbard "Programmieren in C++", erschienen im Verlag McGraw-Hill, sehr empfehlen. Ansonsten habe ich über diverse Bücher der SuSE-Press gutes Gehört. Viele Grüße, Christian -- "What I think is that the F-word is basically just a convenient nasty- sounding word that we tend to use when we would really like to come up with a terrifically witty insult, the kind Winston Churchill always came up with when enormous women asked him stupid questions at parties. -- Dave Barry, "$#$%#^%!^%&@%@!"
Volker Kroll wrote:
Ich muß zugeben, der Unterschied zwischen .o, .a, .so etc. ist mir bisher nicht so richtig klar geworden, da die ANSI-C Bücher darauf nicht eingehen.
Ich habe zwar gerade keine passende Buchempfehlung griffbereit, aber zu den Dateitypen: Die Endung .o steht für Objekt-Dateien. Das sind fertig übersetzte, aber noch nicht gelinkte Module, also das, was der Compiler z.B. aus einer einzelnen .c-Datei macht.[1] Bei den Dateien mit der Endung .a handelt es sich um Archive (zur Handhabung siehe `man ar`), die für gewöhnlich eine Sammlung von Objekt-Dateien enthalten. In dieser Form werden Bibliotheken zum statischen Linken bereitgestellt. Das Linken gegen eine .a-Datei ist letztendlich nichts anderes, als gegen die enthaltenen .o-Dateien zu linken. Die Endung .so steht für Shared Object[2], eine Form, in der Bibliotheken zum dynamischen Linken bereitgestellt werden. Dazu kann man mehrere Objekt-Dateien zu einem Shared Object zusammenlinken. Anders als beim statischen Linken wird beim dynamischen Linken die Bibliothek nicht bei der Erstellung eines ausführbaren Programms komplett in die Programmdatei eingebaut, sondern erst bei Bedarf zur Laufzeit nachgeladen. Eilert Footnotes: [1] Genaugenommen sind das mehrere Schritte (Präprozessor, Compiler, Assembler), aber meist muß man sich mit denen nicht explizit beschäftigen, sondern überläßt das vertrauensvoll einem Frontend wie gcc und sieht so nur noch einen Schritt. [2] Die Bezeichnung kommt daher, daß eine Instanz einer solchen Bibliothek von mehreren Programmen gemeinsam genutzt werden kann. Beim statischen Linken enthält dagegen jedes Programm eine eigene Instanz der Bibliothek, was den Platzbedarf erhöht und unter Umständen auch die Wartung aufwendiger macht (bei Änderungen an der Bibliothek müssen alle davon abhängenden Programme neu gelinkt werden). -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/
On Thu, 25 Jul 2002 at 10:35 (+0200), Volker Kroll wrote:
wie Ihr ja evt. schon gemerkt habt, darf ich mich derzeitig ein wenig mit C auseinandersetzen. Ich suche jetzt ein gutes Buch, welches Dinge wie Aufbau von Projekten in C, linken von Dateien etc. erklärt. Ich muß zugeben, der Unterschied zwischen .o, .a, .so etc. ist mir bisher nicht so richtig klar geworden, da die ANSI-C Bücher darauf nicht eingehen. (Ist ja auch Compilerspezifisch).
Vielleicht hilft Dir fürs erste http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html Die Empfehlung ist übrigens von André Heine, siehe http://lists.suse.com/archive/suse-programming/2002-Jun/0080.html. HTH. Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ Schwerer als Luft? Flugmaschinen sind unmöglich. -- Lord Kelvin, Präsident der Royal Society (1895)
On Thu, 2002-07-25 at 17:08, Bernhard Walle wrote:
Vielleicht hilft Dir fürs erste http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Das hilft schon mal ein wenig.
Die Empfehlung ist übrigens von André Heine, siehe http://lists.suse.com/archive/suse-programming/2002-Jun/0080.html.
Oooops, das hatte ich zwar gelesen, da damals (ist ja schon über einen Monat her) noch für mich irrelevant, hatte ich das wohl überlesen. Danke V. -- Volker Kroll 4mino AG Chief System Developer Chausseestr. 52 b volker.kroll@4mino.de D-10115 Berlin Tel.: +49-30-2888490-0 Fax.: +49-30-2888490-99
participants (4)
-
Bernhard Walle
-
Christian Weickhmann
-
Eilert Brinkmann
-
Volker Kroll