Je reçois l’erreur “erreur: CL / cl.h: pas de tel fichier ou répertoire” lorsque j’essaie de construire un projet sur Qt

J’essaie d’exécuter les applications de benchmark “Valar” sur mon système via Qt Creator et j’obtiens des erreurs lorsque je construis le code:

https://github.com/Frinhard/valar-bench

J’ai tapé la commande: autoreconf -ivf et obtenu la sortie suivante:

 autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 aclocal: couldn't open directory `m4': No such file or directory autoreconf: aclocal failed with exit status: 1 

Toutes mes erreurs étaient connectées au fichier m4, alors j’ai créé un répertoire vide et je l’ai nommé m4 . Après cela, j’ai pu exécuter la commande autoreconf --install et je ne continuais plus à avoir la même erreur. De plus, Makefile.in a également été généré avec de nombreux autres fichiers.

Le lien montre l’état du répertoire après l’ autoreconf --install :

Fichiers après la commande

J’ai exécuté la commande qmake --project sur la ligne de commande et le fichier .pro été généré.

J’ai ouvert le nouveau fichier .pro généré dans Qt Creator et lié les bibliothèques OpenCL aux autres fichiers OpenCL du répertoire “bin”.

 LIBS += -L$$PWD/../../usr/local/cuda-7.0/lib64/ -lOpenCL INCLUDEPATH += $$PWD/../../usr/local/cuda-7.0/lib64 $$PWD/../../usr/local/cuda-7.0/include DEPENDPATH += $$PWD/../../usr/local/cuda-7.0/lib64 DISTFILES += \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/createDescriptors_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/getOrientation_kernels.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/hessianDet_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/integralImage_kernels.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/nearestNeighbor_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/nonMaxSuppression_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/amd/CLSource/normalizeDescriptors_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/createDescriptors_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/getOrientation_kernels.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/hessianDet_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/integralImage_kernels.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/nearestNeighbor_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/nonMaxSuppression_kernel.cl \ ../../Downloads/valar-bench/valar-bench/bin/nvidia/CLSource/normalizeDescriptors_kernel.cl 

J’ai reçu les erreurs suivantes en cliquant sur Build :

  17:27:13: Running steps for project valar-bench... 17:27:13: Configuration unchanged, skipping qmake step. 17:27:13: Starting: "/usr/bin/make" Makefile:941: warning: overriding commands for target `eventlist.o' Makefile:875: warning: ignoring old commands for target `eventlist.o' Makefile:1014: warning: overriding commands for target `main.o' Makefile:960: warning: ignoring old commands for target `main.o' g++ -c -pipe -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_QML_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I../valar-bench -I. -I../valar-bench -I../valar-bench/clhaptic/libmisc -I../valar-bench/fir -I../valar-bench/clhaptic/libanalysis-devices -I../valar-bench/clhaptic/libprofiler -I../valar-bench/clhaptic/libtopology -I../valar-bench/clhaptic/librules -I../valar-bench/clhaptic/libinterceptor -I../valar-bench/clsurf/src -I../valar-bench/particles/Common/Base -I../valar-bench/particles/Common/Math -I../valar-bench/particles/TestBed/Demos -I../valar-bench/particles/Common/Utils -I../valar-bench/particles/TestBed -I../valar-bench/particles/Common/DeviceUtils -I../valar-bench/particles/Common/Geometry -I../valar-bench/particles -I/root/Downloads/valar-bench/valar-bench/../../usr/local/cuda-7.0/lib64 -I/root/Downloads/valar-bench/valar-bench/../../usr/local/cuda-7.0/include -I/opt/QtInstallation/5.6/gcc_64/include -I/opt/QtInstallation/5.6/gcc_64/include/QtGui -I/opt/QtInstallation/5.6/gcc_64/include/QtCore -I. -I/opt/QtInstallation/5.6/gcc_64/mkspecs/linux-g++ -o FIR_tapchange.o ../valar-bench/fir/FIR_tapchange.cpp ../valar-bench/fir/FIR_tapchange.cpp:16:19: error: CL/cl.h: No such file or directory In file included from ../valar-bench/fir/FIR_tapchange.cpp:18: ../valar-bench/clhaptic/libmisc/opencl_utils.h:40: error: 'cl_device_id' was not declared in this scope ../valar-bench/clhaptic/libmisc/opencl_utils.h:42: error: variable or field 'ad_sync' declared void ../valar-bench/clhaptic/libmisc/opencl_utils.h:42: error: 'cl_command_queue' was not declared in this scope ../valar-bench/clhaptic/libmisc/opencl_utils.h:46: error: 'cl_mem' does not name a type ../valar-bench/clhaptic/libmisc/opencl_utils.h:48: error: ISO C++ forbids declaration of 'cl_int' with no type ../valar-bench/clhaptic/libmisc/opencl_utils.h:48: error: expected ',' or '...' before 'status' ../valar-bench/clhaptic/libmisc/opencl_utils.h:50: error: 'cl_device_id' has not been declared ../valar-bench/clhaptic/libmisc/opencl_utils.h:52: error: variable or field 'ad_setKernelArg' declared void ../valar-bench/clhaptic/libmisc/opencl_utils.h:52: error: 'cl_kernel' was not declared in this scope ../valar-bench/clhaptic/libmisc/opencl_utils.h:52: error: expected primary-expression before 'unsigned' ../valar-bench/clhaptic/libmisc/opencl_utils.h:52: error: expected primary-expression before 'size' ../valar-bench/clhaptic/libmisc/opencl_utils.h:53: error: expected primary-expression before 'void' ../valar-bench/clhaptic/libmisc/opencl_utils.h:59: error: 'cl_program' does not name a type ../valar-bench/clhaptic/libmisc/opencl_utils.h:63: error: 'cl_program' does not name a type ../valar-bench/clhaptic/libmisc/opencl_utils.h:76: error: 'cl_platform_id' was not declared in this scope In file included from ../valar-bench/fir/FIR_tapchange.cpp:19: ../valar-bench/fir/FIR_tapchange.h:12: error: 'cl_command_queue' does not name a type In file included from ../valar-bench/clhaptic/libanalysis-devices/analysis-devices.h:6, . . . . . make: *** [FIR_tapchange.o] Error 1 17:27:13: The process "/usr/bin/make" exited with code 2. Error while building/deploying project valar-bench (kit: Desktop Qt 5.6.0 GCC 64bit) When executing step "Make" 17:27:13: Elapsed time: 00:00. 

Voici les informations concernant qmake que j’ai:

 Qmake version: 1.07a (Qt 3.3.8b) Qmake is free software from Trolltech ASA. 

S’il vous plaît guide-moi dans cette affaire.

Le problème a été résolu lorsque j’ai modifié ma méthode de définition des chemins.

Dans ma question, j’avais défini les chemins de la manière suivante:

 LIBS += -L$$PWD/../../usr/local/cuda-7.0/lib64/ -lOpenCL INCLUDEPATH += $$PWD/../../usr/local/cuda-7.0/lib64 $$PWD/../../usr/local/cuda-7.0/include DEPENDPATH += $$PWD/../../usr/local/cuda-7.0/lib64 

Je répète les chemins de la manière suivante et les erreurs ont été corrigées:

 LIBS += -L/usr/local/cuda-7.0/lib64/ -lOpenCL INCLUDEPATH += /usr/local/cuda-7.0/lib64/\ /usr/local/cuda-7.0/include/ 

J’ai également supprimé les parties $$PWD/../.. des autres chemins que j’avais définis dans mon fichier .pro .

Après avoir apporté ces modifications, mon code a commencé à fonctionner correctement.