expertenaustausch > comp.os.* > comp.os.ms-windows.programmer

henry albrecht (24.07.2019, 14:32)
Hallo

Ich experimentiere etwas mit statischen Linklibraries (.lib).

Gibt es eine Art Standardformat, so das solch eine Library mit verschiedenen Compilern/Linkern
verwendbar ist ?

Ich teste hier mit OpenWatcom 1.9, PellesC 9.00.9 und VSE 2013

Der Watcom versteht eine mit VSE erstellte Library. Aber nicht umgekehrt.

Bis auf diesen einen Fall sind die Libraries ansonsten nicht austauschbar.

Ist diese Austauschbarkeit überhaupt möglich ?
Stefan Reuther (25.07.2019, 18:14)
Am 24.07.2019 um 14:32 schrieb henry albrecht:
> Gibt es eine Art Standardformat, so das solch eine Library mit verschiedenen Compilern/Linkern
> verwendbar ist ?
> Ich teste hier mit OpenWatcom 1.9, PellesC 9.00.9 und VSE 2013
> Der Watcom versteht eine mit VSE erstellte Library. Aber nicht umgekehrt.
> Bis auf diesen einen Fall sind die Libraries ansonsten nicht austauschbar.
> Ist diese Austauschbarkeit überhaupt möglich ?


Ich behaupte: im allgemeinen Fall ist eine solche Austauschbarkeit für
statische Libraries nicht möglich. Es kommt nicht nur auf das
Library-Dateiformat an, sondern auch auf die durch den entsprechenden
Compiler benutzte Standardbibliothek: sind `isprint`, `FILE`,
`std::cout` identisch definiert?

Wenn man fein um diese Probleme drumherumprogrammiert kann man
vermutlich eine Austauschbarkeit erreichen. Das Standardformat für
Windows ist nunmal das, was Visual Studio erzeugt. Es gibt Konverter für
Objekt-/Librarydateien. Bei MinGW/Cygwin wäre das objcopy. Ob
Watcom/Pelles etwas entsprechendes haben, weiß ich nicht.

Einfacher wird's mit DLLs. Die haben ihre eigene Standardbibliothek
eingebacken, man muss nur aufpassen, an den Schnittstellen keine
Eigenheiten der Standardbibliothek durchscheinen zu lassen.

Stefan
henry albrecht (25.07.2019, 23:46)
Am 25.07.2019 um 18:14 schrieb Stefan Reuther:

> Ich behaupte: im allgemeinen Fall ist eine solche Austauschbarkeit für
> statische Libraries nicht möglich. Es kommt nicht nur auf das


> Windows ist nunmal das, was Visual Studio erzeugt. Es gibt Konverter für
> Objekt-/Librarydateien. Bei MinGW/Cygwin wäre das objcopy. Ob


Danke für den Hinweis. Ich werde mir "objcopy" einmal ansehen. Das Thema
ist für mich von rein technischem Interesse, (nur für den Fall, das sich
jemand fragt, warum ich ggf. die Libraries nicht einfach mit dem jeweils
anderen Compiler erstelle).
Ähnliche Themen