Re: Cannot enable dvdnav - undefined reference to `mp_dvdtimetomsec'

"Zuxy Meng" <[email protected]> Tue, 11 Mar 2008 10:47:11 +0800
Newsgroups gmane.comp.video.mplayer.cygwin
Message-ID <[email protected]>
Hi,

2008/3/11, John Brown <[email protected]>:
> Hello All,
>
> I tried to compile svn 26208 with gcc-3.4.5 on MinGW/MSYS.
>
> I followed the instructions in DOCS/tech/dvdnav-howto.txt. Libdvdnav (r997)
> compiled successfully.
>
> I configured MPlayer like this:
>
> TMPDIR=./tmp TEMPDIR=./tmp ./configure  --disable-dvdread-internal --enable-gui
> --enable-debug=3  --prefix=/usr/local  --with-extraincdir=/usr/local/include
> --with-extralibdir=/usr/local/lib  --extra-libs=-ldvdcss --enable-static
> --codecsdir=codecs --disable-sdl --disable-pthreads --enable-largefiles >
> BUGREPORT/configure.txt 2>&1
>
> I needed to manually add -ldvdread to EXTRALIBS in config.mak, but after
> doing that, I was still left with the following errors:
>
> gcc -o mplayer.exe osdep/mplayer-rc.o mplayer.o m_property.o mp_fifo.o mp_msg.o
> mixer.o parser-mpcmd.o command.o asxparser.o codec-cfg.o cpudetect.o edl.o find_
> sub.o get_path.o m_config.o m_option.o m_struct.o mpcommon.o parser-cfg.o playtr
> ee.o playtreeparser.o spudec.o sub_cc.o subopt-helper.o subreader.o vobsub.o lib
> vo/libvo.a libao2/libao2.a input/libinput.a vidix/libvidix.a gui/libgui.a libmpc
> odecs/libmpcodecs.a libaf/libaf.a libmpdemux/libmpdemux.a stream/stream.a libsws
> cale/libswscale.a libvo/libosd.a libavformat/libavformat.a libavcodec/libavcodec
> .a libavutil/libavutil.a libpostproc/libpostproc.a loader/libloader.a mp3lib/lib
> mp3.a liba52/liba52.a libmpeg2/libmpeg2.a libfaad2/libfaad2.a tremor/libvorbisid
> ec.a libass/libass.a osdep/libosdep.a -lopengl32 -lgdi32 -lgdi32 -lwinmm -lgdi32
>  -lfaac -lx264 -lmp3lame -lcomdlg32 -lcomctl32 -lshell32 -lkernel32 /usr/local/l
> ive/liveMedia/libliveMedia.a                  /usr/local/live/groupsock/libgroup
> sock.a                  /usr/local/live/UsageEnvironment/libUsageEnvironment.a
>                /usr/local/live/BasicUsageEnvironment/libBasicUsageEnvironment.a
>                  -L/usr/local/lib -lwinmm -lws2_32 -liconv -lpng -lz -ljpeg -lu
> ngif -lcdio_cdda -lcdio -lcdio_paranoia -lwinmm -L/usr/local/lib -lfreetype -lfo
> ntconfig -lexpat -lfreetype -lz -llzo2 -lmad -lspeex -ltheora -logg -ldts -ladva
> pi32 -lole32  -lstdc++ -lamrnb -lamrwb -lxvidcore -lm -lnut -lole32 -luuid    -L
> /usr/local/lib -ldvdnavmini -static -lm -ldvdread -ldvdcss
> stream/stream.a(stream_dvdnav.o): In function `fill_buffer':
> c:/progra~1/multimedia/mplayer/svn/stream/stream_dvdnav.c:217: undefined referen
> ce to `mp_dvdtimetomsec'
> stream/stream.a(stream_dvdnav.o): In function `open_s':
> c:/progra~1/multimedia/mplayer/svn/stream/stream_dvdnav.c:526: undefined referen
> ce to `dvd_audio_stream_types'
> c:/progra~1/multimedia/mplayer/svn/stream/stream_dvdnav.c:526: undefined referen
> ce to `dvd_audio_stream_channels'
> c:/progra~1/multimedia/mplayer/svn/stream/stream_dvdnav.c:574: undefined referen
> ce to `dvd_angle'
> collect2: ld returned 1 exit status
> make: *** [mplayer.exe] Error 1
>
> I see that mp_dvdtimetomsec is defined in stream/stream_dvd_common.c,
> but it is listed as an undefined symbol in stream/stream.a.
>
> I gave up trying to find out where the other symbols were defined.

Try this patch.
-- 
Zuxy
Beauty is truth,
While truth is beauty.
PGP KeyID: E8555ED6

_______________________________________________
MPlayer-cygwin mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin
configure.diff (text/plain, 1 KB)
Index: configure
===================================================================
--- configure	£¨°æ±¾ 26219£©
+++ configure	£¨¹¤×÷¸±±¾£©
@@ -5420,7 +5423,7 @@
 elif test "$_dvdread" = yes; then
   _def_dvdread='#define USE_DVDREAD 1'
   _largefiles=yes
-  _ld_extra="$_ld_extra -ldvdread"
+  _ld_extra="$_ld_extra -ldvdnav -ldvdread"
   _inputmodules="dvdread(external) $_inputmodules"
   _res_comment="external"
 else
@@ -7603,7 +7607,7 @@
 # to use its own copy of the library)
 echocheck "DVD support (libdvdnav)"
 if test "$_dvdnav" = auto ; then
-  $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
+  $_dvdnavconfig --version --libs >> $TMPLOG 2>&1 || _dvdnav=no
 fi
 if test "$_dvdnav" = auto ; then
   cat > $TMPC <<EOF
@@ -7620,7 +7624,7 @@
   _largefiles=yes
   _def_dvdnav='#define USE_DVDNAV 1'
   _inc_extra="$_inc_extra `$_dvdnavconfig --cflags`"
-  _ld_extra="$_ld_extra `$_dvdnavconfig --minilibs`"
+  _ld_extra="$_ld_extra `$_dvdnavconfig --libs`"
   _inputmodules="dvdnav $_inputmodules"
 else
   _def_dvdnav='#undef USE_DVDNAV'