AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Qt statisch linken?

Ein Thema von cookie22 · begonnen am 19. Aug 2013 · letzter Beitrag vom 26. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Qt statisch linken?

  Alt 19. Aug 2013, 08:25
Nicht gesucht oder nicht gefunden?

Hier eine erklärung was zu machen wäre:

http://stackoverflow.com/questions/5...h-a-qt-project

Man sollte auch die LGPL-Einschräkungen berücksichtigen die damit auftreten.

Im Lazarus-Forum hat jemand auch die Frage gestellt. Hab jetzt nicht durchgelesen was das Ergebnis ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Qt statisch linken?

  Alt 19. Aug 2013, 09:34
Wie ich das Ganze in mein Fpc Projekt bekomme steht da leider nicht. Fpc <> C++, oder in diesem falle Fpc != C++.
Gruß
Cookie

Geändert von cookie22 (19. Aug 2013 um 09:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Qt statisch linken?

  Alt 19. Aug 2013, 09:36
Den Link auf das Lazarus-Forum vergessen: http://forum.lazarus.freepascal.org/...?topic=14217.0
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Qt statisch linken?

  Alt 19. Aug 2013, 09:50
Ich denke, du müsstest erst mit einem C++-Compiler eine Object(.o)-Datei erzeugen. Die kannst du dann in Freepascal einbinden (Bei Google suchenfreepascal static link c).

Sorry, falls du das schon wusstest, mehr weiß ich dazu leider auch nicht...
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Qt statisch linken?

  Alt 19. Aug 2013, 12:06
Denke das ist der richtige Ansatz.
Gruß
Cookie
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#6

AW: Qt statisch linken?

  Alt 24. Mär 2020, 10:42
Nicht gesucht oder nicht gefunden?

Hier eine erklärung was zu machen wäre:

http://stackoverflow.com/questions/5...h-a-qt-project

Man sollte auch die LGPL-Einschräkungen berücksichtigen die damit auftreten.

Im Lazarus-Forum hat jemand auch die Frage gestellt. Hab jetzt nicht durchgelesen was das Ergebnis ist.
Heißt das, das statisches Linken verboten ist?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.571 Beiträge
 
Delphi 12 Athens
 
#7

AW: Qt statisch linken?

  Alt 24. Mär 2020, 11:21
Es gibt Lizenzen, die ein direktes Linken deren Code in eine Anwendung verbieten, aber bei denen gibt es dann meistens auch keine LIB-Dateien, die man linken könnte.

Auch gibt es einige Lizenzmodelle, vor allem im Bereich Open Source, die erlauben es nicht "fest" in Closed Source Projekte eingebunden zu werden, wenn der Code in seiner Hauptfunktion ohne diesen fremden Code/Komponente nicht funktionsfähig ist.


Falls deine Lizenz zu der Lizenz der Fremdkomponente kompatibel ist und es von der Komponente z.B. LIB-Dateien gibt, deren Inhalt vom Compiler direkt in deine EXE/DLL gelinkt werden können, dann gibt es eigentlich keine Probleme.

Ansonsten entweder dynamisch verlinken, aber so dass es nicht gleich abraucht, sollte die Library/DLL fehlen,
falls es die Lizenz wenigstens das verlinken erlaubt, dann geht auch ein statischer Import deren DLL
oder deinen Code/Programm unter der gleichen oder einer kompatiblen Lizenz veröffentlichen, wenn deren Code einkompiliert wird, aber die Lizenz es verlangt dass "alles" Open Sorce bleiben muß.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Mär 2020 um 11:30 Uhr)
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#8

AW: Qt statisch linken?

  Alt 24. Mär 2020, 19:25
Wie funktioniert so ein statischer Import?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#9

AW: Qt statisch linken?

  Alt 25. Mär 2020, 06:44
Zitat:
Wie funktioniert so ein statischer Import?
Vermutlich gar nicht, ich kenne mich mit dem QT-Linker jetzt nicht aus,
aber es ist wohl sehr wahrscheinlich das die Binärcodes völlig inkompatibel sind.
Wenn schon VC und C++Builder nicht zusammenpassen.

Ein Linken könnte vielleicht über einen kleinen Wrapper auf die QT-"Dll" gemacht werden.

Du schreibst von Linux/Macos zu EXE, also vermischt Du hier Windows/Linux ?
Ich vermute mal das es dann nicht um "DLL" sondern um .so/.dylib geht.
  Mit Zitat antworten Zitat
DualCoreCpu
(Gast)

n/a Beiträge
 
#10

AW: Qt statisch linken?

  Alt 25. Mär 2020, 10:40
Zitat:
Wie funktioniert so ein statischer Import?
Vermutlich gar nicht, ich kenne mich mit dem QT-Linker jetzt nicht aus,
aber es ist wohl sehr wahrscheinlich das die Binärcodes völlig inkompatibel sind.
Wenn schon VC und C++Builder nicht zusammenpassen.

Ein Linken könnte vielleicht über einen kleinen Wrapper auf die QT-"Dll" gemacht werden.

Du schreibst von Linux/Macos zu EXE, also vermischt Du hier Windows/Linux ?
Ich vermute mal das es dann nicht um "DLL" sondern um .so/.dylib geht.
Ich frage, weil ich mehrere statische Bibliotheken in ein Freepascal Projekt einbinden will. Das Projekt soll OpenSource werden, die Bibliotheken sind auch alle OpenSource und sollen dann im Projekt mitgeliefert werden. Aufrufkonvention ist stdcall. Ich weiß, dass die Syntax für die external Deklaration sich für statische Bibliotheken von der bei DLLs unterscheidet. Biher werden meine Bibliotheken nicht gefunden, obwohl ich den Bibliothekspfad korrekt angegeben habe, sicherheitshalber die Bibliotheken nochmals in das BIN Verzeichnis von Freepascal und nochmals in den Pfad meines Projektes kopiert habe. Ich habe nun die gemagelten Namen aus den Bibliotheken mit vorangestelltem Unterstrich und der Bytezahl der übergebenen Parameter hinter external geschrieben. Wie stelle ich nun sicher, dass das statische Linken auch jederzeit funktioniert. Ich nutze Freepascal 3.0.4. Objektformat ist COFF.

Delphi-Quellcode:
function MyLibfunc(Param: Longint): Boolean;
  stdcall; external name '_MyLibfunc@4';
Wenn ich ...external name 'MyLibfunc' schreibe, wird die Bibliothek nicht gefunden, also muss es neben den gemangleten Namen noch was anderes sein, was das Linken fehlschlagen lässt. Aber was?

In der IDE habe ich statisches Linken eingestellt.

.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz