Ubuntu下嵌入式Qt开发环境配置全攻略

libfontconfig1-dev libxext-dev libgl-mesa-dev libglu-mesa-dev

在Ubuntu 12.04中,除第一个外,其他包应该都是最新版,第一个包因依赖关系冲突无法安装,好在不影响编译和运行。

注意:在拷贝粘贴命令时,其中某些字符可能被不同的编辑环境改变,特别是空格和符号,如命令执行出错,可以考虑在Linux命令行下删除空格和符号后手工输入一次。

三、安装与编译

1. 安装SDK

进入sdk所在目录,在命令行中运行:

./qt-sdk-linux-x86-opensource-2010.05.1.bin 然后会出现图形界面安装,按提示下一步即可,程序安装目录为:

/opt/qtsdk-2010.05

2. 安装arm编译器

进入编译器压缩包所在目录,执行命令:

tar xvzf

arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /

注意文件名后的-C是参数,再后面的\/\表示解压目录。执行完之后会将编译器安装在/opt/FriendlyARM/toolschain/4.5.1目录下。

安装后需要将编译器路径加入环境变量中,执行命令:

gedit ~/.bashrc

在文件最后加入一行:

export

PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

3. 编译tslib

进入tslib目录,依次执行:

./autogen.sh

./configure --host=arm-linux --prefix=\自定义安

装目录xxx\ make

sudo make install

configure命令中--prefix参数用来指定tslib的安装目录,例如\/home/xxx/lib/tslib\,也可以不带此参数,则安装到默认目录/usr/local/tslib下,下文以\/xxx\指代tslib安装目录,请读者注意。

4. 编译x86-qte-4.6.1

解压x86-qte-4.6.1压缩包包,可以使用图形界面右键菜单解压,也可使用命令:

gzip -dc x86-qte-4.6.1-20100201.tar.gz | tar

-xvf -

友善之臂在压缩包中提供了编译脚本build-all,脚本开头会将先前的安装配置目录删除,对初次配置没有必要,且脚本中的命令参数与前面安装的SDK版本不同,建议进入解压目录后,将以下几步保存为脚本执行或依次输入执行:

cd /opt/qtsdk-2010.05/qt/tools/qvfb/

/opt/qtsdk-2010.05/qt/bin/qmake \

make

cd - #返回上一个目录,即解压目录

tar xfvz qt-everywhere-opensource-src-4.6.1.tar.gz

cd qt-everywhere-opensource-src-4.6.1

echo yes | ./configure -opensource -embedded x86 -xplatform qws/linux-generic-g++ -qt-libtiff -qt-libmng -qvfb

make

sudo make install

x86-qte将被安装在/usr/local/Trolltech/QtEmbedded-4.6.1-i386目录下。

5. 编译arm-qte-4.7.0

解压arm-qte-4.7.0压缩包包,进入解压目录执行:

tar xfvz qt-everywhere-opensource-src-4.7.0.tar.gz

cd qt-everywhere-opensource-src-4.7.0

echo yes | ./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-pc -no-mouse-linuxtp -no-neon -qt-mouse-tslib -I/xxx/include -L/xxx/lib

make

sudo make install

上述命令与友善之臂提供的脚本最大不同在configure命令中,一是参数顺序不同,二是在-qt-mouse-tslib参数后增加了-I和-L两项给出tslib头文件和库文件路径(/xxx是tslib安装目录)。这里的编译过程非常诡异,笔者至今也未明所以然,只能指出如下几点供

读者参考:

如不能正确设置tslib路径,将出现如下错误提示: The tslib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR and QMAKE_LIBDIR in /

源码包解压目录/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++.

正常解决办法是进入错误提示中的路径,编辑文件qmake.conf加入两行:

QMAKE_INCDIR = /xxx/include

QMAKE_LIBDIR = /xxx/lib

但诡异错误既出,正常办法多半是无效的,编辑文件后错误依旧。也有人建议改上述文件中的编译器名,但据笔者分析这种方法无道理(篇幅有限不赘),事实也未成功。直接在-qt-mouse-tslib参数后增加-I和-L两项也尝试了,同样无效。

最后在偶然中改变了友善之臂脚本中configure命令参数的顺序,,改成本文这个样子,然后删除又输入了几个空格,编译就奇迹般的通过了。后来再试,拷贝的命令都不能成功,建议读者也改改空格碰碰运气。

arm-qte将被安装在/usr/local/Trolltech/QtEmbedded-4.7.0-arm目录下。

6. 编译x86-qtopia-4.4.3

解压x86-qt-extended-4.4.3压缩包,进入解压目录,首先执行命令:

tar xzf

qt-extended-opensource-src-4.4.3.tar.gz

将源码解压,在源码目录中找到文件:

qt-extended-4.4.3/src/libraries/qtopia/qphone

profile.cpp

将其1026行改为:

QPhoneProfile::Schedule

&QPhoneProfile::Schedule::operator=(const Schedule

&other)

然后将下列命令保存为脚本执行: cd ~/x86-qt-extended-4.4.3

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4