Discussion:
Wie statische Linklibraries unter div. Compilern austauschbar machen ?
(zu alt für eine Antwort)
henry albrecht
2019-07-24 12:32:13 UTC
Permalink
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 ?
--
Gruss
Stefan Reuther
2019-07-25 16:14:54 UTC
Permalink
Post by 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
2019-07-25 21:46:42 UTC
Permalink
Post by Stefan Reuther
Post by 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
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).
--
Gruss
Loading...