ich möchte ein QT-Programm statisch linken in Microsoft Visual C++ 64Bit. Dazu habe ich mir die QT-Bibliothek kompiliert. Die dynamische Version habe ich getestet und sie funkltioniert:
Code: Alles auswählen
configure -prefix /testqt5.8dyn -opengl desktop -no-openssl -opensource -confirm-license -skip webkit -release
Danach dann die statische Variante, aber mit danymischer runtime library, weil ich nicht alle Probleme auf einmal haben wollte:
Code: Alles auswählen
configure -prefix /testqt5.8dynRT -static -opengl desktop -no-openssl -opensource -confirm-license -skip qtwebkit -release
Natürlich habe ich gesucht und gefunden, dass ich für statische Applikationen das hier brauche:This application failed to start because it could not find or load the QT platform plugin "windows" in "".
Reinstalling the application may fix this problem
Code: Alles auswählen
#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
Dabei habe ich schon fast alle .libraries verlinkt:1>------ Erstellen gestartet: Projekt: QtGui1Back5Static, Konfiguration: ReleaseStatic x64 ------
1> main.cpp
1> Bibliothek "C:\Users\Name\Dropbox\C++Projects2017\QtGui1Back5Static\x64\ReleaseStatic\QtGui1Back5Static.lib" und Objekt "C:\Users\Name\Dropbox\C++Projects2017\QtGui1Back5Static\x64\ReleaseStatic\QtGui1Back5Static.exp" werden erstellt.
1>qwindows.lib(qwindowswindow.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_DwmEnableBlurBehindWindow" in Funktion ""bool __cdecl applyBlurBehindWindow(struct HWND__ *)" (?applyBlurBehindWindow@@YA_NPEAUHWND__@@@Z)".
1>qwindows.lib(qwindowswindow.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_DwmIsCompositionEnabled" in Funktion ""bool __cdecl applyBlurBehindWindow(struct HWND__ *)" (?applyBlurBehindWindow@@YA_NPEAUHWND__@@@Z)".
1>C:\Users\Name\Dropbox\C++Projects2017\QtGui1Back5Static\x64\ReleaseStatic\\QtGui1Back5Static.exe : fatal error LNK1120: 2 nicht aufgelöste Externe
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========
Im Internet (hier)finde ich immer etwas von einer "Qt5PlatformSupport.lib". Die finde ich bei mir nicht. Und die Qt5PlatformCompositorSupport.lib scheint nicht zu helfen.msvcrt.lib;clip2tri.lib;clipper.lib;imm32.lib;opengl32.lib;poly2tri.lib;qdirect2d.lib;qminimal.lib;qoffscreen.lib;qtpcre.lib;qtfreetype.lib;qtharfbuzz.lib;qtlibpng.lib;qtmain.lib;qwindows.lib;UxTheme.lib;winmm.lib;Ws2_32.lib;Qt5AccessibilitySupport.lib;Qt5Charts.lib;Qt5CLucene.lib;Qt5Concurrent.lib;Qt5Core.lib;Qt5DataVisualization.lib;Qt5DBus.lib;Qt5Designer.lib;Qt5DesignerComponents.lib;Qt5DeviceDiscoverySupport.lib;Qt5EventDispatcherSupport.lib;Qt5FbSupport.lib;Qt5FontDatabaseSupport.lib;Qt5Gamepad.lib;Qt5Gui.lib;Qt5Help.lib;Qt5Location.lib;Qt5Multimedia.lib;Qt5MultimediaQuick_p.lib;Qt5MultimediaWidgets.lib;Qt5Network.lib;Qt5NetworkAuth.lib;Qt5Nfc.lib;Qt5OpenGL.lib;Qt5OpenGLExtensions.lib;Qt5PacketProtocol.lib;Qt5PlatformCompositorSupport.lib;Qt5Positioning.lib;Qt5PrintSupport.lib;Qt5Purchasing.lib;Qt5Qml.lib;Qt5QmlDebug.lib;Qt5Quick.lib;Qt5QuickControls2.lib;Qt5QuickParticles.lib;Qt5QuickTemplates2.lib;Qt5QuickTest.lib;Qt5QuickWidgets.lib;Qt5Script.lib;Qt5ScriptTools.lib;Qt5Sql.lib;Qt5Scxml.lib;Qt5SerialBus.lib;Qt5SerialPort.lib;Qt5Sensors.lib;Qt5Svg.lib;Qt5Test.lib;Qt5TextToSpeech.lib;Qt5ThemeSupport.lib;Qt5UiTools.lib;Qt5Widgets.lib;Qt5WebChannel.lib;Qt5WebSockets.lib;Qt5WinExtras.lib;Qt5Xml.lib;Qt5XmlPatterns.lib;Qt53DCore.lib;%(AdditionalDependencies)
Oder sollte ich mich dafür mal in einem QT-Forum registrieren? Die IRC-Channel sind auf alle Fälle nicht mehr hilfreich :/
Edit: http://www.qtforum.de/viewtopic.php?f=1&t=18386 (Edit: Hab den Beitrag mal gelöscht, was sollen die schon besseres schreiben :) )
Mal schauen, was da rauskommt :) Registriert seit 13 Minuten ^^
GELÖST
Danke Krishty!Krishty hat geschrieben:liegt doch in Dwmapi.lib … mal eingebunden? Windows SDK von Vista oder neuer benutzt (in alten SDK-Varianten existieren die Funktionen nicht)?
Wenn ich so darüber nachdenke, habe ich wahrscheinlich die Funktion aus dem Einsprungspunkt nicht richtig kopiert, sonst hätte Google das ja auch finden müssen.