在 ubuntu 上编译 qtopia-2.2.0问题

在ubuntu上编译 x86-qtopia,会出现很多错误。

如果想查看完成log信息,请使用该命令进行编译:./build -all 2>&1 | tee  build.log


1.首先在ubuntu上缺少libuuid.so这个库,所以会报错:/usr/bin/ld: cannot find -luuid

 

所以要下载编译e2fsprogs-1.39.tar.gz(有时还需要安装其他依赖)

#tar -zxvf e2fsprogs-1.39.tar.gz

#cd e2fsprogs-1.39

#./configure

#make

在拷贝/e2fsprogs-1.39/lib/libuuid.a到/usr/lib


再回到x86-qtopia

#cd x86-qtopia

# ./build-all

新的问题出现:

/opt/FriendlyARM/X86-qtopia/qtopia-2.2.0-Friendly/qtopia/lib/libqtopia.so: undefined reference to `uuid_generate'
collect2: ld returned 1 exit status
make[6]: *** [fifteen] Error 1
make[5]: *** [all] Error 2
make[4]: *** [sub-games-fifteen] Error 2
make[3]: *** [sub-src-components_pro] Error 2
make[2]: *** [all] Error 2
make[1]: *** [all] Error 2


解决办法:

#cd e2fsprogs-1.39

#./configure --enable-elf-shlibs

#make

#cp -rf lib/libuuid.so* /usr/lib

 

2.编译工具版本问题,老版本的gcc和g++编译不会出现问题,当时gcc 4.4.3比较严格,所以需要修改qtopia-2.2.0.tar.gz这个包里面 的源码。不然有些地方编译不过。

 

(1)解压包here to fix: 

(2)需要修改的地方:
1). in qtopia-2.2.0-FriendlyARM/qt2/src/tools/qmemoryfile_unix.cpp line
143:
  --- f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY);  
  +++ f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY, 0777);
  2). 同样的补丁
qtopia-2.2.0-FriendlyARM/qtopia/src/libraries/qtopia/qmemoryfile_unix.cpp
line 141:
  3). 
qtopia-2.2.0-FriendlyARM/qtopia/src/libraries/qtopia/backend/vobject.cpp
qtopia-2.2.0-FriendlyARM/qtopia/src/plugins/codecs/wavplugin/waveplugin.cpp
这两个文件中所有trrchr()函数前添加(char*)强制转换
(3)重新打包为.tar.gz  (因为每次编译都是解压这个包去编译的,不然每次都被覆盖)
3.   出现   mkdir: 无法创建目录‘qtopia/image/opt/Qtopia/pics/konqueror’: 没有那个文件或目录

将build文件:
mkdir qtopia/image/opt/Qtopia/pics/konqueror
改为
mkdir -p qtopia/image/opt/Qtopia/pics/konqueror
即可。

 

4. sudo ./bull-all

 

5. sudo ./run

可能会出现黑屏

1)could not open for writing 'Settings/qpe_new.conf'
QCopChannel::send: Must construct a QApplication before using QCopChannel
【解决方案】:$HOME环境变量没有设置阿? 要设到一个可写的位置。其实用sudo应该不会出现

 

 

2)如果提示:Qt/Embedded data directory is not owned by user 0:/tmp/qtembedded-0

运行:sudo chown root:root /tmp/qtembedded-0

 

sudo ./run 就能看到界面了

 

参考文章:

fhttp://bbs.eeworld.com.cn/redirect.php?fid=15&tid=86056&goto=nextoldset

http://www.cnblogs.com/liu_xf/archive/2011/05/03/2033174.html

http://blogold.chinaunix.net/u3/94019/showart_1895212.html

http://hi.baidu.com/wxd2000/blog/item/b9ee1594e6a862027af480ac.html

http://www.realarm.cn/bbs/viewthread.php?tid=458

你可能感兴趣的:(linux)