2009-06-10 8 views
36

je le code suivant dans un exemple de fichier:Comment inclure les fichiers d'en-tête dans le chemin de recherche de GCC?

#include "SkCanvas.h" 
#include "SkDevice.h" 
#include "SkGLCanvas.h" 
#include "SkGraphics.h" 
#include "SkImageEncoder.h" 
#include "SkPaint.h" 
#include "SkPicture.h" 
#include "SkStream.h" 
#include "SkWindow.h" 

Cependant, ce code se trouve dans divers dossiers dans/home/moi/développement/skia (qui comprend noyau/animateur/images/ports/svg/et beaucoup plus.)

Comment puis-je faire GCC reconnaître ce chemin?

+0

http://stackoverflow.com/questions/558803/how-to-add-a-default-include-path-for-gcc-in-linux –

Répondre

55

Essayez gcc -c -I/home/me/development/skia sample.c. Voir here.

+1

Heureux de voir cette réponse ici. Un autre point à mentionner serait que lorsque vous avez de nombreux fichiers sources ".c", il est nécessaire de spécifier chacun d'entre eux dans la ligne de commande elle-même. Vous ne pouvez pas faire quelque chose comme un -I pour spécifier que tous les fichiers source se trouvent dans un certain répertoire. – Nav

+0

Si l'en-tête se trouve dans le même répertoire que la source, avez-vous besoin d'une inclusion spéciale? Je ne peux pas obtenir mon code pour compiler de toute façon, et je ne suis pas sûr de savoir quel est le problème – CodyBugstein

+0

Selon [cette réponse] (https://stackoverflow.com/a/510151/1403102) à une question similaire, ' gcc' ne chercherait pas automatiquement dans les sous-répertoires pour les différents fichiers d'en-tête. Au lieu de cela, 'pkg-config' pourrait produire l'option' -I' appropriée? –

16

La directive -I fait le travail:

gcc -Icore -Ianimator -Iimages -Ianother_dir -Iyet_another_dir my_file.c 
Questions connexes