[FFmpeg-user] issues compiling ffmpeg on Solaris 10

Tom Evans tevans.uk at googlemail.com
Tue Dec 4 14:31:21 CET 2012


On Tue, Dec 4, 2012 at 5:53 AM, Phaneendra Katta
<Phaneendra.Katta at vifm.org> wrote:
> Hi,
>
> Here are the features i want and this is my configure command
>
> # ./configure --enable-gpl --enable-version3 --disable-w32threads
> --enable-runtime-cpudetect --enable-bzlib --enable-frei0r --enable-libass
> --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb
> --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libnut
> --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
> --enable-libspeex --enable-libtheora --enable-libutvideo
> --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis
> --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid
> --enable-zlib

Why?

How to make ffmpeg:

Install gcc, yasm, GNU make, GNU grep dependent libraries
Set path so that GNU tools - grep, make, gcc - are found before system
alternatives
Check out ffmpeg from git
run "./configure [--enable-gpl --enable-version3]"
run "make"

You do not need --enable lines for libraries that ffmpeg detects you
have installed. If you specify --enable-foo, and foo is not installed
in a way that ffmpeg (or more likely, foo) expects, then your
compilation fails. In short, do not do it!

>
> It errors out complaining about libass not found though it exists
>
>
> Broken shell detected.  Trying alternatives.
> Trying shell bash
> ERROR: libass not found
>
> If you think configure made a mistake, make sure you are using the latest
> version from Git.  If the latest version fails, report the problem to the
> ffmpeg-user at ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
> Include the log file "config.log" produced by configure as this will help
> solving the problem.
>
>
> root at sadmin01# pkg-config --exists libass ;echo $?
> 0
>
>
>
> Here is the abstract from config.log
>
>
> BEGIN /tmp/ffconf.XXPSaatF.c
>     1   #include <ass/ass.h>
>     2   long check_ass_library_init(void) { return (long)
> ass_library_init; }
>     3   int main(void) { return 0; }
> END /tmp/ffconf.XXPSaatF.c
> gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
> -D__EXTENSIONS__ -D_XOPEN_SOURCE=600 -std=c99 -fomit-frame-pointer
> -mcpu=ultrasparc -mtune=ultrasparc -I/usr/local/include -L/usr/local/lib
> -c -o /tmp/ffconf.XXtTaauF.o /tmp/ffconf.XXPSaatF.c
> gcc -I/usr/local/include -L/usr/local/lib -o /tmp/ffconf.XX.SaGtF
> /tmp/ffconf.XXtTaauF.o -lass -lm -lbz2 -lz -lrt
> Undefined                       first referenced
>  symbol                             in file
> libiconv_close                      /usr/local/lib/libass.so
> libiconv_open                       /usr/local/lib/libass.so
> libiconv                            /usr/local/lib/libass.so
> ld: fatal: Symbol referencing errors. No output written to
> /tmp/ffconf.XX.SaGtF
> collect2: ld returned 1 exit status
> ERROR: libass not found

So libass is installed, but when you try and link to it, there is a
missing reference to libiconv. libass requires libiconv, but libass's
pkgconfig pc file clearly does not state this, so ffmpeg does not link
to it. Fix libass, or specify the additional libraries you need to
confgure:

./configure --extra-libs="-liconv"

With the missing library specified, configure will be able to "find"
libass, and will enable it. Repeat as necessary.

Keep re-running configure, check the output to see if the features you
require are enabled. If not, check config.log to find out why, fix the
problem, re-run configure.

Cheers

Tom


More information about the ffmpeg-user mailing list