2012-07-31 2 views
2

J'essaie de compiler mon projet avec une bibliothèque appelée SDL_draw en utilisant cmake. Après l'avoir téléchargé et installé, les fichiers de la bibliothèque vont dans/usr/local/lib et s'appellent libSDL_draw.a, donc j'ai édité le fichier CMakeLists.txt pour le lire.Ajout d'une bibliothèque à cmake

link_directories(
    /usr/local/lib 
) 
include_directories(/usr/local/lib) 

ADD_EXECUTABLE(point_trajectory point_trajectory.cpp) 

TARGET_LINK_LIBRARIES(point_trajectory SDL_draw) 

Le CMake réussit, mais quand je « fais » le projet après CMake, il ne peut toujours pas trouver SDL_draw.h.

fatal error: SDL_draw.h: No such file or directory 
compilation terminated. 
make[2]: *** [CMakeFiles/point_trajectory.dir/point_trajectory.cpp.o] Error 1 
make[1]: *** [CMakeFiles/point_trajectory.dir/all] Error 2 
make: *** [all] Error 2 

Répondre

2

Je n'ai jamais utilisé SDL_draw avant, mais quelque chose semble drôle. Habituellement, l'archive de la bibliothèque se trouve dans/usr/local/lib mais le fichier d'en-tête est ailleurs ... probablement/usr/local/include.

Vous pouvez vérifier à nouveau où SDL_draw.h est. Si c'est dans/usr/local/lib, vérifiez que vous l'avez correctement installé.

Peut-être, cela va résoudre votre problème:

include_directories(/usr/local/include) 
+0

SDL_draw.h est présent nulle part dans le répertoire usr. – rajat

+0

Je mets le SDL_draw.h dans/usr/local/include et cela semble fonctionner. – rajat

+0

Pour ce que cela vaut, vous pouvez lire la documentation de SDL_draw. En particulier, il devrait y avoir une étape d'installation qui copie SDL_draw.h pour vous dans/usr/local/include. Bien sûr, faire une copie manuellement fonctionne également, mais cela pourrait être un signe que quelque chose d'autre pourrait être faux. Donc, vous voudrez peut-être l'examiner juste en cas de problèmes futurs. – Ray

Questions connexes