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
Vous devez vous connecter pour publier un commentaire.
Lisez La Documentation
Il est là pour tout le monde à lire. Vous avez même le choix de ce qu'il faut utiliser (je voudrais aller avec le premier):
Comme vous l'avez déjà dit, il est utile de lire le manuel - spécifiquement ce chapitre - et même plus précisément ici.
Plus précisément, vous voulez
Note également de la documentation sur
#include
syntaxe de la directive, décrit ici:Ainsi, par exemple
sera commencer recherche dans le même répertoire que le .rpc fichier contenant cette directive (ou de prendre un chemin relatif par rapport à ce répertoire).
Si vous souhaitez utiliser le chemin de l' (spécifié par
-I
), vous devez utiliserEst de pratique courante d'utiliser les
#include "local.h"
forme pour les en-têtes à l'intérieur d'une bibliothèque/package/module (cependant vous avez choisi d'organiser ça), et le#include <external.h>
forme pour les en-têtes de externe/3rd-party ou d'un système de bibliothèques.Pour gcc c'est le
-I
option pour l'en-tête comprend. Pour la .fichiers cpp vous avez juste besoin d'apparaître comme un argument de la commande gcc.