Forum: PC-Programmierung QT statisch in Visual Studio 2017


von C. W. (chefkoch)


Lesenswert?

Hallo *,

ich versuche mich gerade am statischen Linken. Nachdem ich mit der 
offiziellen QT-Version zum dynamischen Linken (5.11.1) das Funktionieren 
der IDE (Visual Studio 2017 Community mit QT-Plugin) getestet habe, habe 
ich mir die Sourcen downgeloaded und kompiliert. Der Build lief durch 
und im QT-Creator kann ich das Paket auch  einbinden und statisch Linken 
ohne irgendwelche Einstellungen außer das ich mein eigenes Build 
auswähle (die einfache GUI EXE hat dann 12-13MB). Versuche ich aber mein 
Build im Visual Studio zu verwenden bekomme ich einen Linkerfehler 
(LNK2019). Hat jemand Erfahrung damit?

von Sven B. (scummos)


Lesenswert?

Welche Compiler verwendest du denn jeweils? Du musst vermutlich die 
statischen Qt-Libs mit demselbem Compiler bauen wie dein Executable, was 
du dagegen linkst. Unter Windows hat quasi jeder Compiler ein anderes 
ABI.

von C. W. (chefkoch)


Lesenswert?

Es existiert ja nur ein Compiler auf dem Rechner. Dieser wird auch vom 
QT-Creator beim Build verwendet. Es ist der Compiler des Visual Studio.

von guest (Gast)


Lesenswert?

C. W. schrieb:
> Es existiert ja nur ein Compiler auf dem Rechner.

Sicher? Welche Endung haben Deine Libs, .a oder .lib?
Und wie hast du gebaut?

von C. W. (chefkoch)


Lesenswert?

Es sind *.lib. Gebaut ist das ganze nach: http://www.saoe.net/blog/1649/

von guest (Gast)


Lesenswert?

C. W. schrieb:
> Es sind *.lib

Dann sollten es die richtigen sein.
Kenne das QT-Plugin nicht, setzt das die Linker-Pfade korrekt?
Falls die Buildloglevel hoch genug sind, solltest Du im Output-Fenster 
oder der Build-Log-Datei den Linkeraufruf vor der Fehlermeldung sehen, 
da müßte ein Parameter "/LIBPATH:'<pfad zu deinen libs>'" mit 
auftauchen. Man kann auch in der "link.read.1.tlog" (irgendwo unterhalb 
des intermediate dir) schauen welche Libs gelinkt werden.

von Arc N. (arc)


Lesenswert?


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.