2010-03-27 12 views
5

Ich habe versucht, Qt + Webkit statisch mit MS VS 2008 zu kompilieren und das funktionierte.Statisch kompilieren QWebKit 4.6.2

C:\Qt\4.6.2>configure -release -static -opensource -no-fast -no-exceptions -no-accessibility -no-rtti -no-stl -no-opengl -no-openvg -no-incredibuild-xge -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -no-style-windowsce -no-style-windowsmobile -no-style-s60 -no-gif -no-libpng -no-libtiff -no-libjpeg -no-libmng -no-qt3support -no-mmx -no-3dnow -no-sse -no-sse2 -no-iwmmxt -no-openssl -no-dbus -platform win32-msvc2008 -arch windows -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-script -no-scripttools -webkit -no-declarative 

Allerdings bekomme ich diese Fehler, wenn ein Projekt aufzubauen, die statisch QWebKit Links:

1> Creating library C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.lib and object C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.exp 
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "class WebCore::String __cdecl WebCore::getVersionInfo(void * const,class WebCore::String const &)" ([email protected]@@[email protected]@[email protected]@Z) 
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "private: bool __thiscall WebCore::PluginPackage::fetchInfo(void)" ([email protected]@[email protected]@AAE_NXZ) 
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "private: bool __thiscall WebCore::PluginPackage::fetchInfo(void)" ([email protected]@[email protected]@AAE_NXZ) 
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "class WebCore::String __cdecl WebCore::safariPluginsDirectory(void)" ([email protected]@@[email protected]@XZ) 
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "void __cdecl WebCore::addWindowsMediaPlayerPluginDirectory(class WTF::Vector &)" ([email protected]@@YAXAA[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function "void __cdecl WebCore::addMacromediaPluginDirectories(class WTF::Vector &)" ([email protected]@@[email protected]@[email protected]@[email protected]@[email protected]@@Z) 
1>C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.exe : fatal error LNK1120: 6 unresolved externals 

Muss ich etwas in den Qt Projektoptionen überprüfen müssen? Ich habe QtCore, QtGui, Netzwerk und WebKit überprüft.

+0

Komm schon Gurus! keine Antworten noch Kommentare !! – geeko

+0

Muss ich die Multimedia-/Phonon-Module oder die Bibliotheken gif/jpeg/... etc bei der Konfiguration von Qt für die Kompilierung mit einbeziehen? – geeko

Antwort

4

Es sieht aus wie Sie in der Windows-LIB-Dateien für jede der fehlenden Funktionen verbinden müssen:

VerQueryValue, GetFileVersionInfo -> Version.lib

GetFileVersionInfoSize -> Coredll.lib

PathRemoveFileSpec, SHGetValue, PathCombine -> shlwapi.lib

Wenn Sie mit qmake, die Sie hinzufügen: LIBS + = -lversion -lCoredll -lshlwapi

Andernfalls: Wählen Sie im Menü Projekt die Option Eigenschaften. Öffnen Sie Konfigurationseigenschaften-> Linker-> Eingabe. Fügen Sie im Feld Additional Dependencies version.lib, Coredll.lib und shlwapi.lib hinzu.

+0

Eigentlich habe ich es nur für version.lib & shlwapi.lib getan und es hat funktioniert! Allerdings gehen Sie eigentlich zu Librarian statt Linker-Konfiguration. Eine Sache hat jedoch NICHT funktioniert: Bilder/Videos werden nicht im Web-Control angezeigt? – geeko

+0

@geeko: es klingt wie Qt lädt keine Plugins. Da Sie Qt statisch kompilieren, müssen Sie einige zusätzliche Schritte ausführen, um die statischen Plugins zum Laufen zu bringen. Siehe die Qt-Dokumentation zu statischen Plugins: http://qt.nokia.com/doc/4.6/plugins-howto.html#static-plugins –

+0

Ich benutze tatsächlich MSVC2008, also gibt es einen Weg ohne .pro Dateien? – geeko