#include with <> or "" ?

S

saneman

I have a folder 'app' containing a file 'main.cpp' and a subfolder 'types'
(containing various header files). In main.cpp some header files from the
subdir 'types' are included like:

1)
#include<types/vector.h>
#include<types/matrix.h>

But I have to change them to

2)
#include "types/vector.h"
#include "types/matrix.h"

to make compilation work. I know that 1) worked earlier with the original
makefile but I don't have that anymore. How is it possible to make the code
compile with the version used in 1) again?

I am currently working in MS Visual Studio 2008 and it seems that makefiles
are generated automatically.
 
J

Jerry Coffin

I have a folder 'app' containing a file 'main.cpp' and a subfolder 'types'
(containing various header files). In main.cpp some header files from the
subdir 'types' are included like:

1)
#include<types/vector.h>
#include<types/matrix.h>

But I have to change them to

2)
#include "types/vector.h"
#include "types/matrix.h"

to make compilation work.

This is what you almost certainly _should_ do. To make it work with the
angle brackets, you have to lie to the compiler and tell it that the
current diretory (i.e. the parent of your 'types' directory) contains
"system" headers. That's typically done with the the '-I' compiler flag,
though that varies and isn't really topical here anyway.
 
J

James Kanze

The difference in processing of the angle-bracket type
inclusion directives and the double-quote type is
*implementation-defined*.

In theory. In practice: includes in a <> are searched first in
a list of directories that you provide (via -I or /I options,
depending on the compiler), then in some standard system places
(where the compiler is installed, then /usr/include under most
Unix; under Windows, at least with VC++, I think the contents of
the environement variable INCLUDE). An include "" first
searches in the directory where the file containing the include
was situated, and then acts exactly like an include <>.

Some compilers have additional options to modify this somewhat
(e.g. adding a directory which is only used by include ""), but
I've yet to find a compiler which didn't support the above.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,189
Latest member
CryptoTaxSoftware

Latest Threads

Top