My development environment is such that I have some_header.h
in /usr/include
and in /another/directory
. /another/directory
contains some header files I need to include in my program, but I want to use some_header.h
from /usr/include
. When I use
gcc ... -I/another/directory
gcc uses /another/directory/some_header.h
. If I use
gcc ... -I/usr/include -I/another/directory
gcc does the same thing because it ignores /usr/include
since it is part of the standard search path, but it gets searched after non standard directories included with -I.
Any ideas?
Use the -iquote switch:
Include the files that are in another/directory using quotes:
#include "another_file.h"
Then use
gcc -iquote /another/include ...
to add a search path for quoted include files. This switch will add a directory that is searched for quoted include files after the current directory and before -I and system include paths.
Include your other include files using brackets (i.e. #include <header.h>
).
See here for more information: Where are include files stored - Ubuntu Linux, GCC
Have you looked at -nostdinc
?
The manual says:
-nostdinc
Do not search the standard system directories for header files. Only the directories you have specified with -I options (and the directory of the current file, if appropriate) are searched.
Of course that means that you will have to specify anything that normally goes on the standard search path that you do want...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With