2010-04-19 6 views
2

J'ai deux fichiers d'en-tête nommés string.h dans différentes bibliothèques, ils sont en conflit les uns avec les autres et même en conflit avec le fichier d'inclusion C standard du même nom.Comment résoudre les conflits de noms de fichiers inclus dans GCC?

Il n'est pas nécessaire d'utiliser un string.h sauf un standard, mais j'ai besoin d'inclure les chemins d'en-tête de bibliothèques dans le chemin de recherche GCC. Actuellement, j'utilise quelque chose comme -I /usr/local/include/lib1 -I /usr/local/include/lib2, mais de cette façon, je ne peux pas inclure la norme C string.h.

Quelle est la bonne façon de résoudre de tels conflits?

Répondre

5

Vous pouvez probablement utiliser #include <lib1/string.h> et compiler avec gcc -I/usr/local/include.

+0

C'était facile. Merci. – actual

3

Le problème est que les répertoires ajoutés au chemin de recherche par -I se leva les yeux avant de les standards qui pour gcc sont (dans l'ordre)

/usr/local/include/ 
/usr/include/ 
/usr/local/lib/ 
/usr/lib/ 

Vous pouvez donc suivre les conseils de Schnouki, sauf qu'il n'y a pas besoin d'ajouter -I/usr/local/include