J'ai un problème avec le framework OpenCl/Cuda de Nvidia, mais je pense qu'il s'agit d'un problème de liaison gcc
.Fichiers d'en-tête liés à un fichier d'en-tête non trouvé.
Le fichier exemple suivant utilise opencl_hello_world.c
fichier d'en-tête:
#include "../OpenCL/common/inc/CL/opencl.h"
avec opencl.h
en utilisant ces fichiers d'en-tête:
#include <../OpenCL/common/inc/CL/cl.h>
#include <../OpenCL/common/inc/CL/cl_gl.h>
#include <../OpenCL/common/inc/CL/cl_gl_ext.h>
#include <../OpenCL/common/inc/CL/cl_ext.h>
donc tous les fichiers d'en-tête sont dans le même dossier.
Quand je compile puis avec gcc opencl_hello_world.c -std=c99 -lOpenCL
je reçois des messages d'erreur suivant:
error: ../OpenCL/common/inc/CL/cl.h: No such file or directory
error: ../OpenCL/common/inc/CL/cl_gl.h: No such file or directory
...
Même si cl.h
et les autres fichiers d'en-tête se trouvent dans ce dossier.
Après avoir cherché, je puis changé le comprend dans le opencl.h
à
#include "cl.h"
#include "cl_gl.h"
comment j'ai lu ici: gcc Can't Find a Included Header. Mais déconner avec les fichiers d'en-tête des frameworks ne semble pas être le bon choix? Quelle serait la bonne façon de gérer ce problème?
donc j'ajoute '-I ../ OpenCL/common/inc/CL /' mais j'obtiens toujours l'erreur: '.../OpenCL/commun/inc/CL/cl.h: Aucun fichier ou répertoire de ce type ' – Framester
Étant donné que le chemin est déjà dans #include <>, vous devez passer à -I le chemin BEFORE ../OpenCL/etc, pas après. – jv42
Salut jv42, merci pour le tipp: J'ai essayé 'gcc opencl_hello_world.c -I/home/mon compte utilisateur/Documents/projets/opencl/NVIDIA_GPU_Computing_SDK -L/usr/local/cuda/lib -lOpenCL', mais l'erreur est toujours : '../OpenCL/common/inc/CL/cl.h: Aucun fichier ou répertoire'. Je pense, j'ai oublié quelque chose de stupide. – Framester