Erstellung von Shared Library unter Windows

Alles rund um die Programmierung mit Qt
Antworten
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Erstellung von Shared Library unter Windows

Beitrag von Tilman Räger »

Hallo,

alle Jahre wieder das selbe Problem:

Nach knapp 1 Jahr Abstinenz muss ich mal wieder eine LGPL-Bibliothek für Windows übersetzen (Win7, VS10) und schaffe es ums Verrecken nicht, daraus eine shared-Library zu erstellen, die ich beim Linken eingebunden bekomme. Statisch kein Problem, er erzeugt mir brav eine .lib-Datei und das Problem wäre gegessen - wäre da nicht das nächste Problem mit der LGPL-Lizenz 'dynamisch Linken'. Aber sobald ich bei den Config-Variablen shared angebe, erhalte ich zwar eine dll sowie eine .Manifest-Datei (wozu die gut ist, hat sich mir bisher noch nicht erschlossen :-) ) aber keine .lib - nach der sucht der linker aber, wenn er die DLL dazubinden will. Vielleicht kann mir ja mal wieder jemand auf die Srünge helfen :oops:

Kopf der Bibliotheks-Projektdatei :

Code: Alles auswählen

QT       += core gui network
CONFIG   += dll shared

TARGET = SMTPEmail
TEMPLATE = lib

SOURCES += \
# es folgen Quellen und Headerdateien, mehr nicht mehr :-)

Mit freundlichen Grüßen
Tilman Räger
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Erstellung von Shared Library unter Windows

Beitrag von Christian81 »

Wenn der Code keine Funktionen exportiert (Windows: declspec(dllexport) und Co - google ist Dein Freund) dann wird auch keine .lib-Datei erzeugt. Wenn das Projekt also nicht dafür ausgelegt ist, die Funktionen zu exportieren muss Du es entweder ändern oder hast Pech gehabt. Hat aber nix mit Qt zu tun.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Erstellung von Shared Library unter Windows

Beitrag von Tilman Räger »

Danke, das wird's wohl gewesen sein. Dann habe ich wohl nur 3 Möglichkeiten :

- entweder ich ändere den Code entsprechend und sende dem Entickler den Code zu (der vermutlich sauberste und für andere Interessenten angenehmste Weg)
- ich melde mich beim Entwickler und hole mir die Erlaubnis den Code statisch zu linken (vermutlich am einfachsten)
...
- oder ich ändere den Code einfach ohne weitere Nachfrage bzw. linke statisch in der Hoffnung wird wohl keiner merken :twisted:

Gruss
Tilman

PS : bitte nicht schlagen :wink:
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Erstellung von Shared Library unter Windows

Beitrag von brax »

Tilman Räger hat geschrieben: - entweder ich ändere den Code entsprechend und sende dem Entickler den Code zu (der vermutlich sauberste und für andere Interessenten angenehmste Weg)
- ich melde mich beim Entwickler und hole mir die Erlaubnis den Code statisch zu linken (vermutlich am einfachsten)
- oder ich ändere den Code einfach ohne weitere Nachfrage bzw. linke statisch in der Hoffnung wird wohl keiner merken :twisted:
Ich würde definitiv zu Option 1 bzw. 2 raten. Sehr gut möglich, dass der Entwickler ein reiner Linux Mensch ist (den ich dann bedauern würde, aber ich weiß es gibt gerade hier noch viele Leute die das immer noch als das "bessere" Betriebssystem ansehen... :wink:) und sich deshalb der Export-Sache gar nicht bewusst ist. Daher, würde ich zu Option 1 raten (obwohl Option 1 und 2 eigentlich eh das gleiche sind... Du musst mit dem Entwickler reden...)

Bei Option 3 muss ich sagen: "Pfui!!!!!! Es ist verwerflich, dass Dir überhaupt so ein Gedanke gekommen ist! :wink:" Ganz ernsthaft... auch wenn ich absolut gegen Softwarepatente oder so ein Quatsch bin, finde ich immer noch "Ehre, wem Ehre gebührt!". Wenn jemand Software zur Verfügung stellt, die er in seiner Freizeit (denke ich mal) geschrieben hat, dann sollte man das auch entsprechend wertschätzen und sie so benutzen, wie der Verfasser es vorgesehen hat.
Antworten