转:http://blog.csdn.net/zyxlinux888/article/details/6705480
操作:
1.要安装系统缺失的类库和安装包(有些是非必须的):
zyx@zyx:/$ sudo apt-get install build-essential automake libtool flex bison libboost-dev libboost-all-dev libboost-filesystem-dev libboost-program-options-dev xorg-dev libqt4-dev libqt4-gui qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig libglpng libglpng-dev libglib2.0-dev default-jdk nautilus-gksu nautilus-open-terminal tcsh chmsee vim p7zip p7zip-full p7zip-rar libqt3-mt libpam0g-dev libpcsclite-dev libjpeg62-dev uuid-dev libfreetype6-dev
2.首先安装EABI并设置交叉编译器的环境变量:
(1)打开环境变量设置文件environment
zyx@zyx:~$ sudo gedit /etc/environment
(2)在其中添加":/opt/EmbedSky/4.3.3/bin",修改后为
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/EmbedSky/4.3.3/bin"
(3)使修改后的环境变量生效
zyx@zyx:~$ sudo source /etc/environment
3.修改x86-qtopia-2.2.0-konqueror_build编译脚本配置文件:
在x86-qtopia-2.2.0-konqueror_build编译脚本配置文件中
第26行 .setQpeEnv
改成 ./setQpeEnv
重新编译
若不起作用
继续改成 source ./x86-qtopia-2.2.0/setQpeEnv
重新编译
若仍不起作用
就直接将 /opt/EmbedSky/Qte/x86-qtopia-2.2.0/setQpeEnv
的内容 直接copy到此处,再将原来的注释掉
重新编译即可
注:以下文件可能要在编译过程中才能出现,不能一次改好,需要多次尝试。
4.在x86-qtopia-2.2.0/qtopia/src/plugins/codecs/wavplugin/wavplugin.cpp:第435行
将
char *ext = strrchr(path.latin1(),'.');
修改为
char *ext = (char*)strrchr(path.latin1(),'.');
5.在x86-qtopia-2.2.0/qtopia/src/libraries/qtopia/backend/vobject.cpp:第419行
将
char *dot = strrchr(g,'.');
修改为
char *dot = (char*)strrchr(g,'.');
6.在x86-qtopia-2.2.0/qt2/src/tools/qmemoryfile_unix.cpp:第143行
将
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY,0666);
7.在x86-qtopia-2.2.0/qtopia/src/libraries/qtopia/qmemoryfile_unix.cpp:第141行
将
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY,0666);
操作结束!!!
备注:对应的arm版本也会出现类似编译错误问题,请对应以上内容自行修改。