进入QT/E目录: cd $QTDIR
输入: ./configure -embedded arm -thread -no-cups -qvfb -depths 4,8,16,32
上述选项: -embedded arm 指目标平台为arm; -thread 表示支持qt线程,本人开发当中用到; -qvfb 表示支持虚拟缓冲帧工具qvfb;-depths 4,8,16,32 表示支持4,8,16,32 位的显示颜色深度。还有很多选项就不一一列举,请查看 ./configure -help。
此外还有一个选项我没用的是 -qconfig local,你可以把一些开关变量写到一个文件qconfig-local.h 中,并把它放到$QTDIR/src/tools下。可参考这个目录下的qconfig-small.h、qconfig-medium.h 、qconfig-large.h等文件,直接使用它们也行,如: -qconfig small 。通过这些开关变量,可以把一些开发当中用不着的构件去掉,减少qt库的大小。这里要对QT比较熟练,初学者可先不理。
(本人在家里编译到这里曾出现编译 $QTDIR/include/qvaluestack.h 这个文件的时候出错,后来把qt3.3.8对应的文件拷贝过来覆盖便通过了,估计是与gcc的版本不兼容的问题,我在公司里没出现过这种问题)
7、编译
make sub-src // 指定按精简方式编译开发包,也就是说有些Qt 类未被编
译。
8、测试
至此编译工作完成,最后测试一下是否能正常使用。我们可以用QT自带的例子来测试,如:
cd $QTDIR/examples/aclock //或你自己新建一个QT工程也行
make clean //把原来的清掉
rm *.pro Makefile //删掉,重新建立工程文件
qmake -project
qmake -spec $QTDIR/mkspecs/qws/linux-arm-g++ -o Makefile
-spec指定目标板的配置文件,这里我做的是linux arm平台,注意在这里,$QTDIR/mkspecs/qws/linux-arm-g++ 它不是编译器,是一个配置文件,而编译时用的编译器是我们 在第一步建立的arm交叉编译工具链里面的编译器。
make
如果没出错就表示你的QT/E环境已经成功建立。如果提示说cannot find -lqte, 那么你试一下修改Makefile文件,找到-lqte ,把它改为-lqte-mt再make一次一般就行了。这是因为如果用到QT线程或其它一些原因,它生成的库不再是libqte.so.3.1.0,而是 libqte-mt.so.3.1.0,所以它便找不到了。