Comment dire au compilateur g ++ où chercher des fichiers d'inclusion?

Dans un "répertoire de travail" j'ai beaucoup d' *.rpc et *.h les fichiers qui #include les uns des autres et les fichiers de sous-répertoires.

Par exemple:

#include "first.h"
#include "second.h"
#include "dir1/third.h"
#include "dir2/fourth.h"

Dans mon propre répertoire (qui est différent du "travail" directory) je voudrais créer une nouvelle *.rpc et *.h de fichier qui contient l'un des fichiers à partir du "travail" de répertoire. Par exemple:

#include "/root/workingdirectory/first.h"

Toutefois, il ne fonctionne pas. Parce que "la première.h" peut être "à la seconde.h" et "deuxième.h" ne se trouve pas dans mon répertoire. Est-il un moyen pour indiquer au compilateur qu'il doit rechercher les fichiers inclus pas dans le courant, mais dans le répertoire de travail: /root/workingdirectory/?

Pour le rendre encore plus complexe, dir1 et dir2 ne se trouvent pas dans mon répertoire de travail. Ils sont situés dans /root/workingdirectory2/. Alors, ma deuxième question est de savoir si il est possible de résoudre ce problème en laissant compilateur de savoir que les sous-répertoires sont situés quelque part d'autre?

J'ai aussi besoin d'ajouter, que je ne pas utiliser un environnement de développement et de compilation à partir de la ligne de commande (à l'aide de g++).

source d'informationauteur Roman