On Fri, Mar 27, 2009 at 4:26 AM, Andre Lue <[email protected]> wrote:
> Has anyone had any luck compiling ffmpegthumbnailer on opensolaris. I have
> tried the svn ver 1.4, 1.5 all failing with the same error. Don't know what
> the problem is because the pkg-config find all the lib* but configure ends
> not finding any.
>
> Here are my compile settings
> cat inc.sh
> pre=/opt/mediatomb
>
> . `pwd`/../inc.sh
> CC=/opt/sfw/bin/gcc
> CXX=/opt/sfw/bin/g++
> CONFIG_SHELL=/bin/ksh
> export PKG_CONFIG_PATH=${pre}/lib/pkgconfig:/usr/lib/pkgconfig
> #PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin:/usr/gnu/bin
> export
> PATH=/opt/sfw/bin:/usr/sfw/bin:/usr/xpg6/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/usr/ucb
> ulimit -s 32768
> echo $PKG_CONFIG_PATH
>
> CC=/opt/sfw/bin/gcc LD=/usr/sfw/bin/gld ./configure --prefix=${pre} \
> --includedir=${pre}/include CFLAGS="-I/opt/mediatomb/include"
>
>
> /opt/mediatomb/lib/pkgconfig:/usr/lib/pkgconfig
> checking for a BSD-compatible install... /usr/bin/ginstall -c
[...]
> checking for jpeglib.h... yes
> checking for pkg-config... /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0... yes
> checking for FFMPEG... yes
> checking ffmpeg/avcodec.h usability... no
> checking ffmpeg/avcodec.h presence... no
> checking for ffmpeg/avcodec.h... no
> checking libavcodec/avcodec.h usability... no
See the missing header files - maybe they are somewhere in your src
package, but where they are _not_ is in their expected locations in
/usr/include/<expected> ...
> checking libavcodec/avcodec.h presence... no
> checking for libavcodec/avcodec.h... no
> checking ffmpeg/avformat.h usability... no
> checking ffmpeg/avformat.h presence... no
> checking for ffmpeg/avformat.h... no
> checking libavformat/avformat.h usability... no
> checking libavformat/avformat.h presence... no
> checking for libavformat/avformat.h... no
> checking ffmpeg/avutil.h usability... no
> checking ffmpeg/avutil.h presence... no
> checking for ffmpeg/avutil.h... no
> checking libavutil/avutil.h usability... no
> checking libavutil/avutil.h presence... no
> checking for libavutil/avutil.h... no
> checking ffmpeg/swscale.h usability... no
> checking ffmpeg/swscale.h presence... no
> checking for ffmpeg/swscale.h... no
> checking libswscale/swscale.h usability... no
> checking libswscale/swscale.h presence... no
> checking for libswscale/swscale.h... no
> checking for PNG... yes
> configure: pkgconfig directory is ${libdir}/pkgconfig
> configure: creating ./config.status
> config.status: creating libffmpegthumbnailer.pc
> config.status: creating Makefile
> config.status: creating man/Makefile
> config.status: executing depfiles commands
>
> CONFIGURATION SUMMARY ----
> unittests : disabled
> debug mode : disabled
>
>
> /opt/mediatomb/lib/pkgconfig:/usr/lib/pkgconfig
> Making all in man
> gmake[1]: Entering directory
> `/export/home/andrel/mediatomb/ffmpegthumbnailer/man'
> gmake[1]: Nothing to be done for `all'.
> gmake[1]: Leaving directory
> `/export/home/andrel/mediatomb/ffmpegthumbnailer/man'
> gmake[1]: Entering directory `/export/home/andrel/mediatomb/ffmpegthumbnailer'
> /bin/bash ./libtool --tag=CXX --mode=compile g++
> -DPACKAGE_NAME=\"ffmpegthumbnailer\" -DPACKAGE_TARNAME=\"ffmpegthumbnailer\"
> -DPACKAGE_VERSION=\"1.4.0\" -DPACKAGE_STRING=\"ffmpegthumbnailer\ 1.4.0\"
> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ffmpegthumbnailer\" -DVERSION=\"1.4.0\"
> -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -D_FILE_OFFSET_BITS=64
> -DSTDC_HEADERS=1 -DHAVE_INTTYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_JPEGLIB_H=1
> -I. -g -O2 -MT moviedecoder.lo -MD -MP -MF .deps/moviedecoder.Tpo -c -o
> moviedecoder.lo `test -f 'libffmpegthumbnailer/moviedecoder.cpp' || echo
> './'`libffmpegthumbnailer/moviedecoder.cpp
> mkdir .libs
> g++ -DPACKAGE_NAME=\"ffmpegthumbnailer\"
> -DPACKAGE_TARNAME=\"ffmpegthumbnailer\" -DPACKAGE_VERSION=\"1.4.0\"
> "-DPACKAGE_STRING=\"ffmpegthumbnailer 1.4.0\"" -DPACKAGE_BUGREPORT=\"\"
> -DPACKAGE=\"ffmpegthumbnailer\" -DVERSION=\"1.4.0\" -DSTDC_HEADERS=1
> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
> -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
> -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1
> -DHAVE_INTTYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_JPEGLIB_H=1 -I. -g -O2 -MT
> moviedecoder.lo -MD -MP -MF .deps/moviedecoder.Tpo -c
> libffmpegthumbnailer/moviedecoder.cpp -fPIC -DPIC -o .libs/moviedecoder.o
> In file included from libffmpegthumbnailer/moviedecoder.cpp:17:
> libffmpegthumbnailer/moviedecoder.h:33:28: error: ffmpeg/avcodec.h: No such
> file or directory
> libffmpegthumbnailer/moviedecoder.h:38:29: error: ffmpeg/avformat.h: No such
> file or directory
> libffmpegthumbnailer/moviedecoder.cpp:28:28: error: ffmpeg/swscale.h: No such
> file or directory
> In file included from libffmpegthumbnailer/moviedecoder.cpp:17:
> libffmpegthumbnailer/moviedecoder.h:45: error: 'AVFormatContext' has not been
> declared
> libffmpegthumbnailer/moviedecoder.h:64: error: 'PixelFormat' has not been
> declared
> libffmpegthumbnailer/moviedecoder.h:65: error: 'AVFrame' has not been declared
> libffmpegthumbnailer/moviedecoder.h:70: error: ISO C++ forbids declaration of
> 'AVFormatContext' with no type
> libffmpegthumbnailer/moviedecoder.h:70: error: expected ';' before '*' token
> libffmpegthumbnailer/moviedecoder.h:71: error: ISO C++ forbids declaration of
> 'AVCodecContext' with no type
> libffmpegthumbnailer/moviedecoder.h:71: error: expected ';' before '*' token
>
> however the checks seem to pass:
>
> -bash-3.2$ export
> PKG_CONFIG_PATH=/opt/mediatomb/lib/pkgconfig:/usr/lib/pkgconfig
> -bash-3.2$ pkg-config --exists --print-errors "libavutil libavformat
> libavcodec libswscale"
>
> -bash-3.2$ pkg-config --cflags "libavutil libavformat libavcodec libswscale"
> -I/opt/mediatomb/include
Look in libffmpegthumbnailer/moviedecoder.h where ffmpeg/avcodec.h is
expected to be found. It looks like it may be referenced as
<ffmpeg/avcodec.h>, which means add the default include dir as prefix
to build absolute pathname. I doubt that /usr/include/ffmpeg exists on
your (or any other) Solaris box. Look where you can find
ffmpeg/avcodec.h and adjust the line referencing it in
libffmpegthumbnailer/moviedecoder.h (to a relative pathname maybe,
using double quotes). That should fix the missing declarations and
definitions that your output shows.
Regards,
%martin
_______________________________________________
opensolaris-discuss mailing list
[email protected]