g++ inclure tous les /usr/include de manière récursive
Je suis en train de compiler un programme simple, avec
#include <gtkmm.h>
Le chemin d'accès à gtkmm.h
est /usr/include/gtkmm-2.4/gtkmm.h
. g++ ne pas voir ce fichier, à moins de me dire précisément ce qu'il -I /usr/include/gtkmm-2.4
.
Ma question est, comment puis-je avoir g++ automatiquement de manière récursive à travers tous les répertoires dans /usr/include
pour tous les fichiers d'en-tête qui y sont contenues, et pourquoi ce n'est pas l'action par défaut?
OriginalL'auteur endeavormac | 2009-02-04
Vous devez vous connecter pour publier un commentaire.
Dans ce cas, la bonne chose à faire est d'utiliser
pkg-config
dans votreMakefile
ou buildscripts:Si vous êtes absent
gtkmm-2.4
, cela produiraSinon, vous obtiendrez tous les chemins d'accès appropriés et les bibliothèques aspiré pour vous, sans spécifier tous les paramètres à la main. (Vérifiez la sortie de la
pkg-config --cflags --libs gtkmm-2.4
: c'est beaucoup plus que ce que vous voulez de type à la main, jamais.)OriginalL'auteur ephemient
Je suppose que vous n'êtes pas à l'aide d'un makefile? La seule chose qui pourrait être ennuyeux, c'est d'avoir à taper le long de l'I-option chaque fois vous compilez votre programme. Un makefile est beaucoup plus facile.
Par exemple, vous pouvez modifier la bonjour tout le monde makefile à partir de wikipedia à quelque chose comme ce qui suit:
OriginalL'auteur PolyThinker
Vous ne pouvez pas. Le point de l'ensemble des chemins à inclure est de sorte que vous pouvez choisir ce que vous voulez et ce versions.
Ce que vous pourriez faire est de..
Ce qui permettrait d'atteindre le même effet.
quel formulaire dois le parent comprend prendre en z gtkmm.h? Fondamentalement, vous devez spécifier le répertoire où z gtkmm.h est trouvé par -I et qu'il sera ensuite, le plus probable, le travail correctement. Sans cela, il ne sera pas. Arrêt complet - ou, si vous préférez. Pourquoi ne veulent bataille contre la conception?
Ce que Jon a dit 🙂
OriginalL'auteur Adam Hawes