[FFmpeg-devel] [RFC] full paths in #include directives
Thu May 8 10:35:21 CEST 2008
Diego Biurrun <diego at biurrun.de> writes:
> On Thu, May 08, 2008 at 01:36:11AM +0100, M?ns Rullg?rd wrote:
>> 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
> So it may be slightly less portable to use full paths everywhere?
I think you mean the opposite.
> I say we go with full paths everywhere then.
I wouldn't bother. I've never heard of a compiler that didn't search
the source directory first.
mans at mansr.com
More information about the ffmpeg-devel