2009-12-14 9 views
1

J'ai compilé FreeImage depuis la source et l'ai installé.#include <FreeImage.h> pas trouvé

Quand je lance sudo make install dans installe les fichiers suivants sur mon système

/usr/local/include/FreeImage.h 
/usr/local/lib/libfreeimage-3.10.0.dylib 
/usr/local/lib/libfreeimage.a 

Cependant, dans mon programme C++ il dit error file not found quand je fais ceci:

#include <FreeImage.h> 

J'ai essayé d'ajouter à mon chemin d'accès système:

sudo vi /etc/paths 

#FreeImage 
/usr/local/include 
/usr/local/lib 

Mais le C++ ne peut toujours pas sd mon #include dans Xcode ou avec gcc.

Répondre

2

Vous ne voulez pas voulez les répertoires dans votre fichier /etc/paths. Ce fichier répertorie les répertoires dans lesquels le shell recherche les exécutables.

Essayez:

$ CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" make 
$ sudo make install 

Vous pourriez avoir besoin d'ajouter /usr/local/lib à votre DYLD_LIBRARY_PATH pour faire court-vous que vos exécutables:

$ export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH 

(En supposant que votre variable DYLD_LIBRARY_PATH ne pas /usr/local/lib, et qu'il est Si ce champ est vide, vous devez le remplacer par export DYLD_LIBRARY_PATH=/usr/local/lib.)

Modifier: OK, en fonction de vos commentaires, ressemble à ceci devrait fonctionner:

export CMAKE_INCLUDE_PATH=/usr/local/include 
export CMAKE_LIBRARY_PATH=/usr/local/lib 

Voir What to do if cmake doesn't find the package although it exists on the system? pour plus.

Puisque vous utilisez une version graphique de Cmake, vous devriez faire ceci:

Open « éditeur de liste de propriétés », cliquez sur « Ajouter un enfant ». Pour "Nouvel élément", entrez CMAKE_INCLUDE_PATH, pour Type, laissez-le sous "Chaîne", pour Valeur, entrez /usr/local/include. Ensuite, cliquez à nouveau sur "ajouter un article" et entrez CMAKE_LIBRARY_PATH pour "Nouvel article", laissez le type "Chaîne", et pour "Valeur", entrez /usr/local/lib. Enregistrez ensuite (Fichier -> Enregistrer sous) dans un fichier. Je suggère le nom de fichier a.plist dans votre dossier Bureau. Ensuite, ouvrez un terminal (tronçonneuses -> Utilitaires -> Terminal) et tapez:

mv ~/Desktop/a.plist ~/.MacOSX/environment.plist 

Après cela, quittez Xcode et Cmake IUG, et redémarrez. Cela devrait fonctionner. Voir this pour les détails techniques, et this pour plus d'informations.

+0

Le problème n'est pas que Xcode ne peut pas voir le fichier de bibliothèque, c'est qu'il ne peut pas voir le fichier d'en-tête. Quel fichier Xcode consulte-t-il sur le système pour voir s'il existe un '#include <>'? –

+0

@Alok merci pour vos suggestions. J'ai ajouté les CFLAGS et LDFLAGS au makefile et je recompile ... les doigts croisés. –

+0

Cela n'a fait aucune différence malheureusement. –

Questions connexes