今天在ubuntu12.10 64位下编译32位android 4.04源码时报错:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libstdc++.so when searching for -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libstdc++.a when searching for -lstdc++ /usr/bin/ld: cannot find -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.5.4/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc
因64位系统上只包含64位的库文件,未包含32位的库文件,而目标系统时32位的,故报错。
解决方法是,在同事的机器上复制
1. /usr/lib/gcc/x86_64-linux-gnu/4.5.4/32
2./usr/lig32
两个目录,到我的机器上,问题即解决。
复制时,要注意目录有链接文件时,可能会导致复制失败,此时可把目录打包再复制,例如:
tar -cvf lib32.tar.gz lib32