主题 : 解决ubuntu下编译qtopia问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 57104
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2011-10-19
最后登录: 2012-10-08
楼主  发表于: 2012-03-02 22:01

 解决ubuntu下编译qtopia问题

小记:通过一晚加一天的熬站,终于搞定了友善之臂的mini2440 x86-qtopia的编译。

系统平台:VMware7.1+ubuntu10.04

参考博文:http://jinsuo2007.blog.163.com/blog/static/1922799520104137259556/

在ubuntu下编译友善之臂提供的x86-qtopia遇到的问题主要有:1.编译器版本不兼容 2.找不到依赖库。3.ubuntu语法检查严格造成的代码错误。

1.

编译器版本不兼容的解决办法:在ubuntu下安装g++ 4.1,原来的g++4.4版本太高。安装方式可以使用sudo apt-get install 或者新德里软件管理器。安装之后修改默认的编译器为g++4.1。

当使用新德里软件管理安装g++4.1之后

root@ubuntu:/home/wboss# ls -l /usr/bin/g++*
lrwxrwxrwx 1 root root     16 2012-03-02 10:31 /usr/bin/g++ -> /usr/bin/g++-4.4
-rwxr-xr-x 1 root root 201988 2009-08-27 20:06 /usr/bin/g++-4.1
-rwxr-xr-x 1 root root 220428 2010-03-27 06:43 /usr/bin/g++-4.4


修改默认的编译器为g++-4.1:删除原来的连接,键入命令:rm /usr/bin/g++   ln -s /usr/bin/g++-4.1 /usr/bin/g++ 修改之后:

root@ubuntu:/home/wboss# ls -l /usr/bin/g++*
lrwxrwxrwx 1 root root     16 2012-03-02 10:31 /usr/bin/g++ -> /usr/bin/g++-4.1
-rwxr-xr-x 1 root root 201988 2009-08-27 20:06 /usr/bin/g++-4.1
-rwxr-xr-x 1 root root 220428 2010-03-27 06:43 /usr/bin/g++-4.4

root@ubuntu:/home/wboss# g++ --version
g++ (GCC) 4.1.3 20080704 (prerelease) (Ubuntu 4.1.2-27ubuntu1)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

至此编译器版本修改成功。

2.

找不到依赖库的解决办法:

用sudo apt-get install 一一安装完事。对于已经安装好了的库,依然提示如/usr/bin/ld: cannot find -lXmu 原因是编译器找不到链接库,可能是由于连接损坏造成的。在命令行下输入命令:locate libXmu

root@ubuntu:/home/wboss# locate libXmu
/usr/lib/libXmu.so.6
/usr/lib/libXmu.so.6.2.0
/usr/lib/libXmuu.so.1
/usr/lib/libXmuu.so.1.0.0
/usr/lib/gcc/i486-linux-gnu/4.4/libXmu.so
用ln命令,root@ubuntu:/usr/lib# ln -sf libXmu.so.6.2.0 libXmu.so 新建连接,问题得到解决,其它库同理。

3.

修改/x86-qtopia-2.2.0/qtopia/src/libraries/qtopia/backend/vobject.cpp:419行
    char *dot = strrchr(g,'.');

    char *dot = (char*)strrchr(g,'.');

修改/x86-qtopia-2.2.0/qtopia/src/plugins/codecs/wavplugin/wavplugin.cpp:435行
    char *ext = strrchr( path.latin1(), '.' );
改为
    char *ext = (char*)strrchr( path.latin1(), '.' );



单独编译./build ./build-konq 编译成功