2014.09.01 skia源码在32位ubuntu编译出错

来源:互联网 发布:php文件加密工具 编辑:程序博客网 时间:2024/05/22 10:34

    之前在64位系统上顺利编译skia,在32位系统上确编不过,报如下错:

[586/586] SOLINK lib/libskia.so
FAILED: if [ ! -e lib/libskia.so -o ! -e lib/libskia.so.TOC ]; then g++ -shared -m64 -o lib/libskia.so -Wl,-soname=libskia.so -Wl,--whole-archive obj/src/core/skia_lib.SkForceCPlusPlusLinking.o libskia_effects.a libskia_opts_sse4.a libskia_opts_ssse3.a libskia_ports.a libskia_images.a obj/gyp/libjpeg.a libskia_opts.a libskia_skgpu.a obj/gyp/libwebp_demux.a obj/gyp/libwebp_utils.a libskia_sfnt.a obj/gyp/libwebp_dsp.a obj/gyp/libetc1.a libskia_core.a obj/gyp/libwebp_enc.a obj/gyp/libwebp_dec.a obj/gyp/libSkKTX.a libskia_utils.a  -Wl,--no-whole-archive -lpng -lz -lgif -lpthread -lfontconfig -ldl -lfreetype -lGL -lGLU -lX11 && { readelf -d lib/libskia.so | grep SONAME ; nm -gD -f p lib/libskia.so | cut -f1-2 -d' '; } > lib/libskia.so.TOC;      else g++ -shared -m64 -o lib/libskia.so -Wl,-soname=libskia.so -Wl,--whole-archive obj/src/core/skia_lib.SkForceCPlusPlusLinking.o libskia_effects.a libskia_opts_sse4.a libskia_opts_ssse3.a libskia_ports.a libskia_images.a obj/gyp/libjpeg.a libskia_opts.a libskia_skgpu.a obj/gyp/libwebp_demux.a obj/gyp/libwebp_utils.a libskia_sfnt.a obj/gyp/libwebp_dsp.a obj/gyp/libetc1.a libskia_core.a obj/gyp/libwebp_enc.a obj/gyp/libwebp_dec.a obj/gyp/libSkKTX.a libskia_utils.a  -Wl,--no-whole-archive -lpng -lz -lgif -lpthread -lfontconfig -ldl -lfreetype -lGL -lGLU -lX11 && { readelf -d lib/libskia.so | grep SONAME ; nm -gD -f p lib/libskia.so | cut -f1-2 -d' '; } > lib/libskia.so.tmp && if ! cmp -s lib/libskia.so.tmp lib/libskia.so.TOC; then mv lib/libskia.so.tmp lib/libskia.so.TOC ; fi; fi
/usr/bin/ld: cannot find -lpng
/usr/bin/ld: cannot find -lz
/usr/bin/ld: cannot find -lgif
collect2: error: ld returned 1 exit status

    仔细看log,发现编译时带了-m64,而且用readelf发现编译生成的obj文件也是elf64。分析编译脚本发现,skia_arch_width这个变量的默认值是64,所以用如下命令可以成功编译:

make BUILDTYPE=Release GYP_DEFINES="skia_shared_lib=1 skia_arch_width=32" skia_lib

0 0