歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在64位SUSE Linux上編譯 GPAC

在64位SUSE Linux上編譯 GPAC

日期:2017/2/28 15:45:03   编辑:Linux教程

因為項目需要使用MP4Box給視頻文件加hint,所以需要在在64位SUSE Linux下編譯gpac。
原來在32位系統上./configure make 沒啥問題,結果早上換了個64位的機器死活編譯不過,報如下錯誤:

s.opic -lm -L/usr/local/lib -lz -ljpeg -lpthread -ldl
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/libz.a(gzio.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libgpac.so] Error 1
make[1]: Leaving directory `/root/mayl/bin/gpac/src'
make: *** [lib] Error 2
xmidc_dm_nrc1:~/mayl/bin/gpac #

經過多次試驗排錯,發現鏈接的時候使用了32位的libz去鏈接,導致函數地址找不到,鏈接不成功。
後修改src/Makefile底下的
EXTRALIBS+=-L$(prefix)/lib
改成
EXTRALIBS+=-L$(prefix)/lib64後解決。

PS:

GPAC 是一個為科研和學術領域開發的多媒體的框架,支持 MPEG-4, VRML, X3D, SVG, LASeR 等

GPAC 包括一個多媒體播放器 Osmo4 以及多媒體打包工具 MP4Box

GPAC is cross-platform. It is written in (almost 100% ANSI) C for portability reasons (embedded platforms and DSPs), attempting to keep the memory footprint as low as possible. It is currently running under Windows, Linux, WindowsCE (SmartPhone, PocketPC 2002/2003), Embedded Linux (familiar 8, GPE) and recent SymbianOS systems.

Copyright © Linux教程網 All Rights Reserved