Fichiers d'en-tête lié à partir de l'en-tête du fichier est introuvable.
J'ai un problème avec Nvidia OpenCl/Cuda cadre, mais je pense que c'est un gcc
reliant question.
La opencl_hello_world.c
exemple de fichier utilise des fichier en-tête suivante:
#include "../OpenCL/common/inc/CL/opencl.h"
avec opencl.h
à l'aide de 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>
De sorte que tous les fichiers d'en-tête sont dans le même dossier.
Quand j'ai compiler avec gcc opencl_hello_world.c -std=c99 -lOpenCL
je reçois des messages d'erreur suivants:
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é SI, j'ai ensuite changé le comprend dans le opencl.h
à
#include "cl.h"
#include "cl_gl.h"
comment j'ai lu ici: gcc ne Peut pas Trouver un Inclus l'en-Tête.
Mais de déconner avec les cadres de fichiers d'en-tête ne semble pas être la voie à suivre? Quelle serait la bonne façon de gérer ce problème?
OriginalL'auteur Framester | 2010-09-08
Vous devez vous connecter pour publier un commentaire.
Vous utilisez à la fois des #include "formulaire" et #include <>, ce qui ne va pas chercher dans les mêmes chemins. "" est local à votre projet, et la -je de ligne de commande spécifié à gcc, <> est le "système" chemin d'accès spécifié par -I de la gcc.
Vous avez probablement besoin de définir le chemin d'inclusion, avec -Ipath/à/includes dans de gcc en ligne de commande.
-I../OpenCL/common/inc/CL/
mais j'ai toujours l'erreur:.../OpenCL/common/inc/CL/cl.h: No such file or directory
Depuis le chemin d'accès est déjà dans le #include <>, vous devez passer à l'-je le chemin AVANT d' ../OpenCL/etc, pas après.
Salut jv42, je vous remercie pour la tipp: j'ai essayé
gcc opencl_hello_world.c -I/home/myuseraccount/Documents/projects/opencl/NVIDIA_GPU_Computing_SDK -L/usr/local/cuda/lib -lOpenCL
, mais l'erreur est toujours:../OpenCL/common/inc/CL/cl.h: No such file or directory
. Je pense, j'ai négligé quelque chose de stupide.Êtes-vous sûr de savoir le chemin? N'oubliez pas qu'il commence par ".." dans le code de NV...
OriginalL'auteur jv42