[gdal-dev] gdal.h: No such file or directory

Peter J Halls P.Halls at york.ac.uk
Wed Oct 14 02:22:02 EDT 2009


Mateusz,

    the extract from the standard does not say there is no difference: it says 
that this is implementation dependent - that implementors are free to 
differentiate if they wish and, indeed, that the #include "   " form is 
optional.  I do not use bloodshed nor msvc so would not pretend to represent 
these, however many Unix implementations certainly differentiate as I described. 
  Such differentiation is clearly within the standard as this is 'implementation 
dependent'.

    Sadly, the upshot of all this is that there is no hard and fast rule.  If 
one form does not work, try the other or (better) look it up in the compiler 
manual (assuming there is such a thing).

    It is also worth remembering that there may be an equivalent of the UNIX 
INCLUDE_PATH environment variable which may modify the built in behaviour and, 
equally, as this is an implementation dependent thing, there may not.

Best wishes,

Peter

Mateusz Loskot wrote:
> Peter J Halls wrote:
>> Should it not be #include "gdal.h"?  The <> construct is used for
>> system includes, whereas gdal.h counts as a user include, to be found
>> in the include path.  But I admit my c to be a little rusty ...
>> Peter
> 
> Actually, there is no difference. For reference in case of doubt
> with the bloodshed dev-c++, here is what ISO C++ says in 16.2
> 
> 
> 1 A #include directive shall identify a header or source file that can
>   be processed by the implementation.
> 
> 2 A preprocessing directive of the form
> 
>  # include <h-char-sequence> new-line
> 
> searches a sequence of implementation-defined places for a header
> identified uniquely by the specified sequence between the < and >
> delimiters, and causes the replacement of that directive by the entire
> contents of the header. How the places are specified or the header
> identified is implementation-defined.
> 
> 3 A preprocessing directive of the form
> 
>  # include "q-char-sequence" new-line
> 
> causes the replacement of that directive by the entire contents of the
> source file identified by the specified sequence between the "
> delimiters. The named source file is searched for in an
> implementation-defined manner. If this search is not supported, or if
> the search fails, the directive is reprocessed as if it read
> 
>  # include <h-char-sequence> new-line
> 
> with the identical contained sequence (including > characters, if any)
> from the original directive.
> 
> Best regards,

-- 
--------------------------------------------------------------------------------
Peter J Halls, GIS Advisor, University of York
Telephone: 01904 433806     Fax: 01904 433740
Snail mail: Computing Service, University of York, Heslington, York YO10 5DD
This message has the status of a private and personal communication
--------------------------------------------------------------------------------


More information about the gdal-dev mailing list