When the included file is in " " then the file is expected to be located 
relative to the current directory.  If the included file is in < > then it is 
relative to one of the directories specified in the "include search path".  
This search may or may not include the "current directory" but to have "current 
directory" included, you have to specify the directory location specifically to 
the compiler -- it does not automatically look in the current directory for 
files included with the < > syntax.

So for example, GCC sets several default search locations based on the location 
of the compiler executable itself (so it can find the headers included with the 
compiler).  It then "appends" the directories specified in the INCLUDE 
environment variable to that list.  Command line options (and compilers with 
GUI interfaces will have the same options somewhere) allow the specification of 
"prepends" and "appends" to that list of directories.  Most compilers work the 
same way.

There is also a "LIB search path" that works the same way for linking the 
object files and libraries together.  GCC has defaults set according to the 
location of the compiler executable, then appends the paths found in the LIB 
environment variable, and then has Command line (located in the GUI options for 
other compilers) that let you prepend and append additional paths to the list.

The include and lib paths work the same way for almost all compilers, though 
there are a few exceptions.  For example, there is an old Fortran compiler that 
looks specifically in the "F99INCLUDE" environment variable for included 
Fortran code (actually, anything that is not a .h file), and the "INCLUDE" 
environment variable only for .h files.  Most compilers, however, only use one 
set of "include" and "lib" paths and know how to search for the files 
specifically.

Because the INCLUDE and LIB paths are a list of multiple directories to search, 
order is important.  Only the first file found matching the specified name/type 
will be used.  (Similar to the PATH environment variable on Windows used to 
search for executables).  This is why the compiler itself will usually have a 
pre-set location list as a starting point, to ensure that those files and 
libraries specific to the compiler are used in preference to any you might add 
later.

So if you were to find a copy of zlib prebuilt for your platform and compiler 
you would get at least a .h and .lib (headers and pre-compiled library file).  
You can stick those anywhere you like and add the directory where you put then 
to the INCLUDE search path (so the #include <zlib.h> will find it) and the LIB 
path (so you can specify that Z.LIB or whatever it is named for you) can be 
located when you add the z.lib library to be linked to your project.

In many cases these path additions are done by adding them (and may be done 
automatically for you when you install the library) to the INCLUDE and LIB 
environment variables.  That way whenever you need/reference the 
library/headers they will be found.

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.


>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>[email protected]] On Behalf Of curmudgeon
>Sent: Friday, 25 August, 2017 11:35
>To: [email protected]
>Subject: Re: [sqlite] Compiling spellfix for sqlite3
>
>Thanks Keith, the config info is most welcome. I wasn't sure if I was
>supposed to download zlib.h the fact it was inside <> instead of ""
>but
>understand now.
>
>Is the include <sqlite3ext.h> in csv.c not a bug though, or is it
>again down
>to my compiler?
>
>
>
>--
>View this message in context:
>http://sqlite.1065341.n5.nabble.com/Compiling-spellfix-for-sqlite3-
>tp70656p97105.html
>Sent from the SQLite mailing list archive at Nabble.com.
>_______________________________________________
>sqlite-users mailing list
>[email protected]
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to