2011-02-02 2 views
5

J'ai un projet qui nécessite opencl. J'ai installé CUDA et OpenCL sur ma machine, mais quand je faire mon projet, l'erreur suivante se produit:cl.h pas trouvé - comment lier dans makefile

CL/cl.h: No such file or directory 

Je sais que le je peux créer un lien dur (dans mon système unix (ubuntu)) pour fixer le problème:

ln -s /usr/include/nvidia-current/CL 

Mais je considère ceci une solution rapide et pas la bonne solution. Je voudrais gérer cela dans mon makefile (je suppose) afin qu'une simple commande "make" compile. Comment pourrais-je faire ça?

Répondre

5

Vous devez passer une option -I appropriée au compilateur (en définissant CPPFLAGS ou CFLAGS, par exemple). -I/usr/include/nvidia-current semble que ça marcherait.

+0

J'ai fini par l'ajouter à un fichier séparé gérant INCLUDEPATHS pour ce module spécifique. Mais vérifié que votre option fonctionne bien et est en effet la chose que j'ai demandé à l'origine. Donc accepté votre réponse comme finale. Merci. – bastijn

+0

Merci, cela m'a juste aidé à compiler darktable avec la nouvelle série 200 des drivers nvidia. (Il n'y a pas encore de paquet debian qui délivre le fichier d'en-tête CL/cl.h.) –

+0

@Simon A. Eugster: http://packages.debian.org/experimental/opencl-headers – derobert

1

J'ai vu ce fil de compile opencl program using CL/cl.h file

J'ai installé 7,5 et ajouté lien ci-dessous dans/usr/include, cela fonctionne pour mon programme OpenCL. ressemble à CUDA oublier d'implémenter ce lien après l'installation.

ln -s /usr/local/cuda-7.5/include/CL /usr/include 
0

Utilisez-vous Ubuntu ou Debian distro? Alors maintenant vous pouvez utiliser ce paquet:

sudo apt-get install opencl-headers 
Questions connexes