Forum: PC-Programmierung *.obj Dateien


von Programmierer (Gast)


Lesenswert?

Hallo,
Es geht um die Programmiersprache C.
s
Sind *.obj Dateien das Gleiche wie *.o. Dateien? Also vorcompilierte 
Programmmodule? Und wo liegt der Unterschied zu *.lib Dateien?

MfG.

von daniel(root) (Gast)


Lesenswert?

du bist der Meinung C Standard regelt das?
:)

von Programmierer (Gast)


Lesenswert?

Vermutlich nicht. Also ist das Compiler abhängig? Wie sieht es denn bei 
gcc aus?

von Rolf Magnus (Gast)


Lesenswert?

Programmierer schrieb:
> Wie sieht es denn bei gcc aus?

Der generiert dir z.B. aus einer .c-Datei eine .o-Datei.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das gcc-Äquivalent einer *.lib-Datei heißt *.a, i.d.R. beginnt der 
Dateiname mit "lib", was aber bei der Angabe für den Linker weggelassen 
wird.

Die Kommandozeilenoption

  -lm

sorgt für ein Linken mit* libm.a



*) manche meinen, hier "gegen" schreiben zu müssen

von Rolf Magnus (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das gcc-Äquivalent einer *.lib-Datei heißt *.a, i.d.R. beginnt der
> Dateiname mit "lib", was aber bei der Angabe für den Linker weggelassen
> wird.
>
> Die Kommandozeilenoption
>
>   -lm
>
> sorgt für ein Linken mit* libm.a

Letztendlich ist ein .a-File nichts weiter als ein Archiv aus .o-Files 
(mit dem Archivierungs-Tool ar erzeugt). So kann man mehrere .o-Files zu 
einer Bibliothek zusammenfassen, die man als Ganzes an sein Programm 
linken kann.
Ein .a-File kann man auch wie ein .o-File direkt in der Kommandozeile 
angeben, also ohne -l davor.

> *) manche meinen, hier "gegen" schreiben zu müssen

Ich würde "an" schreiben. "gegen" ist vermutlich einfach eine 
Fehlübersetzung basierend auf dem englischen "against".

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Rolf Magnus schrieb:
> Letztendlich ist ein .a-File nichts weiter als ein Archiv aus .o-Files
> (mit dem Archivierungs-Tool ar erzeugt). So kann man mehrere .o-Files zu
> einer Bibliothek zusammenfassen, die man als Ganzes an sein Programm
> linken kann.

Annähernd dasselbe trifft auch auf *.lib-Files zu.

Rolf Magnus schrieb:
>> *) manche meinen, hier "gegen" schreiben zu müssen
>
> Ich würde "an" schreiben. "gegen" ist vermutlich einfach eine
> Fehlübersetzung basierend auf dem englischen "against".

Bereits im englischen Sprachraum gibt es Leute, die "with", und Leute, 
die "against" linken.
Ist vermutlich eine Frage der Coolness, so wie es auch Leute gibt, die 
einen Server installieren, während andere ihn aufsetzen.

von Mark B. (markbrandis)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Ist vermutlich eine Frage der Coolness, so wie es auch Leute gibt, die
> einen Server installieren, während andere ihn aufsetzen.

Die coolen Leute sagen "installieren", weil das Wort einen lateinischen 
Ursprung hat :-)

von Troll (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Ist vermutlich eine Frage der Coolness, so wie es auch Leute gibt, die
> einen Server installieren, während andere ihn aufsetzen.


Wäre es eigentlich im Umkehrschluss zu sagen, dass ich mir jetzt mal 
einen Kaffee installiere?

von Karl H. (kbuchegg)


Lesenswert?

Wenn du ihn dir intravenös installierst, dann ist das cool.

von Sven P. (Gast)


Lesenswert?

Von früher(tm), als man noch Übersetzer und Binder gesagt hat, kenne ich 
es so: Mit einer Bibliothek zusammenbinden resultiert in einem 
statischen Abbild ('statisch gelinkt').

'Gegen' kam dann wohl zusammen mit dynamischen Bindern, wo die 
Bibliotheken nachher nicht mehr am Abbild klebten. Allerdings habe ich 
'gegen etwas binden' noch nicht gehört, ist irgendwie schräg.

von Silvan K. (silvan) Benutzerseite


Lesenswert?

Um mal wieder zum Thema zurückzukehren: Der SDCC generiert .rel Dateien.

Die Bibliothekdateien sind aber ebenfalls .lib

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.