2010-03-27 31 views
5

Próbowałem statycznie skompilować Qt + Webkit z MS VS 2008 i działało.Statycznie kompilacja 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 

Jednak uzyskać te błędy, gdy budowania projektu, który łączy statycznie QWebKit:

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 &)" (?addWindowsMediaPlayerPluginDirec[email protected]@@[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 

Czy muszę coś sprawdzić w opcjach projektu Qt? Mam zaznaczone QtCore, QtGui, Network i WebKit.

+0

Przyjdź na guru! brak odpowiedzi ani komentarzy !! – geeko

+0

Czy podczas konfigurowania Qt do kompilacji muszę dołączyć moduły multimedia/Phonon lub gif/jpeg/... etc? – geeko

Odpowiedz

4

Wygląda na to trzeba połączyć w plikach okien lib dla każdej z brakujących funkcji:

VerQueryValue, GetFileVersionInfo -> version.lib

GetFileVersionInfoSize -> Coredll.lib

PathRemoveFileSpec, SHGetValue, PathCombine -> shlwapi.lib

Jeśli używasz qmake, należy dodać: LIBS + = -lversion -lCoredll -lshlwapi

W przeciwnym razie: Z menu Projekt wybierz Właściwości. Otwórz Właściwości konfiguracji-> Łącznik-> Wejście. W polu Dodatkowe zależności dodaj wersję.lib, Coredll.lib i shlwapi.lib

+0

Właściwie zrobiłem to tylko dla version.lib i shlwapi.lib i działało! Mimo to, zamiast korzystać z konfiguracji Linkera, przechodzisz do Librarian. Jednak jedna rzecz NIE działa: obrazy/filmy nie wyświetlają się w kontrolce internetowej?! – geeko

+0

@geeko: wygląda na to, że Qt nie ładuje wtyczek. Ponieważ tworzysz statyczną kompilację Qt, musisz zrobić dodatkowe kroki, aby zainstalować wtyczki statyczne. Zobacz dokumentację Qt na statycznych wtyczkach: http://qt.nokia.com/doc/4.6/plugins-howto.html#static-plugins –

+0

Używam MSVC2008, więc czy istnieje sposób bez przechodzenia przez .pro akta ? – geeko

Powiązane problemy