这两天在研究 Qt/E 4.5 的系统裁减的问题,不知道是Qt官方做的测试不够,还是自己还没有完全搞明白,目前发现了几个小问题,自己Fix了两个,还有一个,始终搞不明白。
首先,在做配置的时候做出选择,我需要使用哪些QT的模块,我做出的配置如下:
./configure -fast -no-qt3support -no-feature-PROPERTIES -no-feature-TEXTODFWRITER -no-feature-CSSPARSER -no-feature-DRAGANDDROP -no-feature-SESSIONMANAGER -no-feature-SHORTCUT -no-feature-CURSOR -no-feature-STL -no-feature-STACKEDWIDGET -no-feature-MDIAREA -no-feature-CLIPBOARD -no-feature-EFFECTS -no-feature-PROCESS -no-feature-QUUID_STRING -no-feature-FILESYSTEMMODEL -no-feature-TREEWIDGET -no-feature-TABBAR -no-feature-TABLETEVENT
然后执行make命令 ,编译的结果是出现了三个bug。
第一个bug是关于 -no-feature-TABLETEVENT 的,代码的错误出现在 application.cpp 文件中,大约在 3604 行,原code如下:
- #if !defined(QT_NO_WHEELEVENT) || !defined(QT_NO_TABLETEVENT)
- else if (
- # ifndef QT_NO_WHEELEVENT
- e->type() == QEvent::Wheel ||
- # endif
- # ifndef QT_NO_TABLETEVENT
- e->type() == QEvent::TabletMove
- || e->type() == QEvent::TabletPress
- || e->type() == QEvent::TabletRelease
- # endif
- ) {
错误信息是这样的:
86-g++ -I. -I../../include/QtCore -I../../include/QtNetwork -I../../include -I../../include/QtGui -I.rcc/release-shared-emb-x86 -I/usr/include/freetype2 -I../3rdparty/harfbuzz/src -Idialogs -I.moc/release-shared-emb-x86 -I.uic/release-shared-emb-x86 -o .obj/release-shared-emb-x86/qapplication.o kernel/qapplication.cpp
kernel/qapplication.cpp: In member function ‘virtual bool QApplication::notify(QObject*, QEvent*)’:
kernel/qapplication.cpp:3604: error: expected primary-expression before ‘)’ token
make[1]: