[MPlayer-dev-eng] Local headers are included over system headers

Diego Biurrun diego at biurrun.de
Sat May 3 13:31:54 CEST 2008


On Sat, May 03, 2008 at 01:10:51PM +0300, Uoti Urpala wrote:
> On Sat, 2008-05-03 at 10:28 +0200, Nico Sabbi wrote:
> > If you configure --without-dvdread-internal and if the dvdread is installed
> > globally (e.g. in /usr/local/include/dvdread) the code in stream/stream_dvd.h
> > still includes mplayer's local copy of dvdread headers, contrary to my expectations.
> > (just include #error EXTERNAL_DVDREAD at the beginning of /usr/local/include/dvdread/dvd_reader.h
> > and verify) .
> > The code in stream/stream_dvd.h looks correct to me:
> > 
> > #ifdef USE_DVDREAD_INTERNAL
> > #include "dvdread/dvd_reader.h"
> > #include "dvdread/ifo_types.h"
> > #include "dvdread/ifo_read.h"
> > #include "dvdread/nav_read.h"
> > #else
> > #include <dvdread/dvd_reader.h>
> > #include <dvdread/ifo_types.h>
> > #include <dvdread/ifo_read.h>
> > #include <dvdread/nav_read.h>
> > #endif
> > 
> > thus the wrong inclusion is probably due to wrong -I flags.
> > Can someone give it a look, please?
> 
> -I adds directories to the search path for includes using both "" and
> <>. Thus having the top-level MPlayer source directory in the default -I
> flags means <dvdread/dvd_reader.h> will be found under the local
> dvdread/ too. Using -iquote instead of -I adds directories to the search
> path for includes using "" only, but it is a less standard compiler
> option than -I. I see no other easy way to avoid the problem by include
> path changes as long as the files have the current names and locations
> though.

Yes, I do not think this can be fixed without renaming the internal
path.

Diego



More information about the MPlayer-dev-eng mailing list