在使用suse10.2交叉编译qtopia-free-2.2.0时出现了一下错误:
g++ -c -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQTOPIA_TARGET=/"qdawggen/" -DQTOPIA_TRTARGET=/"qdawggen/" -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -I/root/qtopia-free-2.2.0/qtopia/mkspecs/linux-g++ -I. -I/root/qtopia-free-2.2.0/dqt/include -I/root/myqpe/include -I../../../include -I/root/qtopia-free-2.2.0/dqt/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/qdawg.o ../../libraries/qtopia/qdawg.cpp
../../libraries/qtopia/qdawg.cpp:294: error: extra qualification 'QDawgPrivate::'on member 'QDawgPrivate'
问题估计是出在主机编译器gcc的版本上,因为使用redhat是可以成功编译的,不过这里也不管那么多了,解决这个问题再说吧。
解决方法首先想到的是不编译这个程序。那么怎样达到这个目的呢?因为qtopia下的所有的makefile都是由qtopia-free-2.2.0/src/general.pri这个文件产生的,因此在这里可以将qdawggen这个程序从tools里面的程序清单中去除,这样在编译前的makefile产生阶段就不会产生关于qdawggen这个程序的选项,从而达到不编译这个程序的目的。
从这个问题的解决可以知道,如果要对qtopia进行裁剪可以从这个
qtopia-free-2.2.0/src/general.pri文件入手,这个文件列出了所有要编译的程序,只要在这里进行添加、删除相应的程序选项就可以达到裁剪qtopia自带程序与功能的目的。