Ubuntu 12.04 编译Android 4.0.3模拟器的错误解决


还是挡不住Ubuntu12.04的诱惑,升级啦。在已经配置好的Ubuntu 11.10 Android开发环境下(请参看 ),升级Ubuntu系统到12.04,参考 。

目前没遇到啥大的问题。只是编译(emulator版本,device版本没有问题。)的时候有如下错误:

1.错误:/usr/bin/ld: cannot find -lGL
解决办法:重新建立链接就好了。

http://d.hatena.ne.jp/embedded/20120412/p1

$ ldd libGLES_CM_translator.so
    linux-gate.so.1 =>  (0xf77a7000)
    libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xf76ed000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76e8000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76cc000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75e7000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf75bb000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7416000)
    libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf7400000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf73ed000)
    libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf73e9000)
    libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf73e3000)
    libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf73e0000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf72ac000)
    libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf7293000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf7272000)
    libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf726c000)
    libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf725f000)
    /lib/ld-linux.so.2 (0xf77a8000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7241000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf723c000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf7235000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf722c000)
/out/host/linux-x86/lib$ 


~$ find /usr/ -name "libGL.so*"
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib32/libGL.so
/usr/lib32/mesa/libGL.so.1.2
/usr/lib32/mesa/libGL.so.1


~$ ls -l /usr/lib32/ligGL.so
ls: cannot access /usr/lib32/ligGL.so: No such file or directory
~$ ls -l /usr/lib32/libGL.so
lrwxrwxrwx 1 root root 15 2011-10-14 12:55 /usr/lib32/libGL.so -> mesa/libGL.so.1


~$ find /usr/ -name "libGL.so*"
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGL.so

~$ ls -l /usr/lib/x86_64-linux-gnu/libGL.so
lrwxrwxrwx 1 root root 13  3月 30 19:18 /usr/lib/x86_64-linux-gnu/libGL.so -> mesa/libGL.so
~$ ls -l /usr/lib/x
x86_64-linux-gnu/    xulrunner/           xvmcconfig-standard/
xorg/                xulrunner-addons/    
~$ ls -l /usr/lib/x86_64-linux-gnu/mesa/libGL.so
lrwxrwxrwx 1 root root 10  3月 30 19:18 /usr/lib/x86_64-linux-gnu/mesa/libGL.so -> libGL.so.1
~$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so

~$ ls -l /usr/lib/i386-linux-gnu/mesa/libGL.so
lrwxrwxrwx 1 root root 39  5月 21 19:06 /usr/lib/i386-linux-gnu/mesa/libGL.so -> /usr/lib/i386-linux-gnu/mesa/libGL.so.1
~$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so /usr/lib/i386-linux-gnu/libGL.so
~$ find /usr/ -name "libGL.so*"/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2
/usr/lib/i386-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGL.so
~$ ls -l /usr/lib/i386-linux-gnu/libGL.so
lrwxrwxrwx 1 root root 37  5月 21 19:07 /usr/lib/i386-linux-gnu/libGL.so -> /usr/lib/i386-linux-gnu/mesa/libGL.so

lrwxrwxrwx 1 root root 39  5月 21 19:06 /usr/lib/i386-linux-gnu/mesa/libGL.so -> /usr/lib/i386-linux-gnu/mesa/libGL.so.1


2.错误:undefined reference to `domInstance_force_field::registerElement(DAE&)'

解决办法:重新编译就好啦。
host C: libpcre <= out/host/linux-x86/obj/STATIC_LIBRARIES/libpcre_intermediates/pcre/src/pcre_chartables.c
host StaticLib: libpcre (out/host/linux-x86/obj/STATIC_LIBRARIES/libpcre_intermediates/libpcre.a)
host Executable: a3dconvert (out/host/linux-x86/obj/EXECUTABLES/a3dconvert_intermediates/a3dconvert)
out/host/linux-x86/obj/STATIC_LIBRARIES/colladadom_intermediates/colladadom.a(domPhysics_scene.o): In function `domPhysics_scene::registerElement(DAE&)':
external/collada/src/1.4/dom/domPhysics_scene.cpp:51: undefined reference to `domInstance_force_field::registerElement(DAE&)'
out/host/linux-x86/obj/STATIC_LIBRARIES/colladadom_intermediates/colladadom.a(domInstance_physics_model.o): In function `domInstance_physics_model::registerElement(DAE&)':
/external/collada/src/1.4/dom/domInstance_physics_model.cpp:45: undefined reference to `domInstance_force_field::registerElement(DAE&)'
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/a3dconvert_intermediates/a3dconvert] Error 1

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.bkjia.com/topicnews.aspx?tid=2

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

相关内容