2012-02-19 5 views
1

Я начал использовать bisect qtwebkit, и когда я пытаюсь скомпилировать его на первом этапе, это дало мне следующее исключение. Я попытался использовать старый qmake, но все же он дает то же исключение. Что это действительно значит и как я могу это исправить.компилировать qt-webkit с mingw32-make для деления пополам

g++ -c -Wall -Wreturn-type -fno-strict-aliasing -Wcast-align -Wchar-subscripts -Wformat-security -Wreturn-type -Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum -Wundef -Wmissing-noreturn -Winit-self -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DBUILDING_QT__=1 -DWTF_USE_ACCELERATED_COMPOSITING -DUSE_SYSTEM_MALLOC -DNDEBUG -D_HAS_TR1=0 -DBUILDING_QT__ -DBUILDING_JavaScriptCore -DBUILDING_WTF -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include" -I"." -I"..\..\webkit" -I"assembler" -I"bytecode" -I"bytecompiler" -I"debugger" -I"interpreter" -I"jit" -I"parser" -I"pcre" -I"profiler" -I"runtime" -I"wtf" -I"wtf\symbian" -I"wtf\unicode" -I"yarr" -I"API" -I"ForwardingHeaders" -I"generated" -I"\include\QtWebKit" -I"pcre" -I"\JavaScriptCore\tmp" -I"..\..\..\..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"c:\QtSDK1.2\mingw\include" -I"c:\QtSDK1.2\mingw\include" -I"..\..\..\..\mkspecs\win32-g++" -o tmp\obj\debug_shared\MainThreadQt.o wtf\qt\MainThreadQt.cpp In file included from wtf\qt\MainThreadQt.cpp:72: 
tmp\moc\debug_shared/MainThreadQt.moc:13:2: error: #error "This file was generated using the moc from 4.8.0. It" 
tmp\moc\debug_shared/MainThreadQt.moc:14:2: error: #error "cannot be used with the include files from this version of Qt." 
tmp\moc\debug_shared/MainThreadQt.moc:15:2: error: #error "(The moc has changed too much.)" 
In file included from wtf\qt\MainThreadQt.cpp:72: 
tmp\moc\debug_shared/MainThreadQt.moc:42: error: no 'void WTF::MainThreadInvoker::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' member function declared in class 'WTF::MainThreadInvoker' 
tmp\moc\debug_shared/MainThreadQt.moc:55: error: 'const QMetaObjectExtraData WTF::MainThreadInvoker::staticMetaObjectExtraData' is not a static member of 'class WTF::MainThreadInvoker' 
tmp\moc\debug_shared/MainThreadQt.moc:56: error: 'qt_static_metacall' was not declared in this scope 
tmp\moc\debug_shared/MainThreadQt.moc:57: error: too many initializers for 'const QMetaObjectExtraData' 
tmp\moc\debug_shared/MainThreadQt.moc:61: error: 'staticMetaObjectExtraData' was not declared in this scope 
tmp\moc\debug_shared/MainThreadQt.moc:62: error: too many initializers for 'QMetaObject::<anonymous struct>' 
tmp\moc\debug_shared/MainThreadQt.moc: In member function 'virtual int WTF::MainThreadInvoker::qt_metacall(QMetaObject::Call, int, void**)': 
tmp\moc\debug_shared/MainThreadQt.moc:88: error: 'qt_static_metacall' was not declared in this scope 
mingw32-make[2]: *** [tmp/obj/debug_shared/MainThreadQt.o] Error 1 
mingw32-make[2]: Leaving directory `C:/Qt/qtGITSource/qt/src/3rdparty/webkit/JavaScriptCore' 
mingw32-make[1]: *** [debug-all] Error 2 
mingw32-make[1]: Leaving directory `C:/Qt/qtGITSource/qt/src/3rdparty/webkit/JavaScriptCore' 
mingw32-make: *** [sub-JavaScriptCore-make_default-ordered] Error 2 

ответ

0

IMHO ll. 2,3 Важно:

ошибка «Этот файл был создан с помощью МОЦ из 4.8.0 Это.»

ошибка «не может быть использована с инклюдников из этой версии Qt.»

Ваша достигаемость версии меньше, чем qt 4.8, и все ваши moc-файлы были сгенерированы в предыдущей сборке с помощью moc v4.8. Вам необходимо очистить каталог сборки и перезапустить команду сборки (убедитесь, что вы используете правильную версию qmake, moc и т. Д.).

+0

Большое спасибо за ваш ответ. Я запустил mingw32-make confclean для очистки проекта, но мне это, похоже, не помогло. В ошибке упоминается файл tmp \ moc \ debug_shared/MainThreadQt.moc, но он не существует. Я также попытался использовать qmake 4.7.4. но это закончилось тем, что дало мне ту же ошибку. Я действительно ценю ваш ответ. – Tharanga

+0

Какой git совершить qt вы используете? (Которое совершает эту проблему?) Вы компилируете в Windows или хотите перекрестно скомпилировать? – sgibb

+0

Я использую qt4.8 и пытаюсь построить назад. Я думаю, что я делал это неправильно. Мне пришлось строить его с самого начала, а не просто строить один компонент, который был qtwebkit. – Tharanga