[FFmpeg-devel] [RFC] full paths in #include directives
Måns Rullgård
mans
Thu May 8 02:36:11 CEST 2008
Diego Biurrun <diego at biurrun.de> writes:
> I would like to propose using full paths in all #include directives in
> FFmpeg, i.e.
>
> #include "libavutil/common.h"
>
> instead of
>
> #include "common.h"
>
> The reasons are manyfold:
>
> 0) We already expect this from external users.
>
> 1) Many header names are not at all unique. The above-mentioned
> common.h comes to mind, as do others. Depending on the order of -I
> flags the right header may or may not be included.
>
> This has bitten me several times in MPlayer already. We now use full
> paths for FFmpeg #includes in MPlayer, but still -I flags are needed so
> that the FFmpeg headers themselves can find their dependencies. But
> with -Ilibavcodec on the gcc command line '#include <png.h>' picks up
> the FFmpeg version instead of the libpng header. Build system kludges
> can work around this, but the system remains brittle, future FFmpeg
> changes may necessitate more or updated kludges.
>
> 2) The need for -I flags would be reduced internally as well as
> externally.
>
> Attached is an example patch for libpostproc. If the idea is accepted,
> I will do the rest of the work myself.
I say go ahead. Headers in the same directory as the file containing
the #include directive probably don't need the full paths. The C99
standard leaves it implementation-defined where header files are
searched for. POSIX does, however, specify that the directory of the
source file be searched first when the #include directive uses
double-quotes.
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list