2017-01-26 14 views
2

Я пытаюсь запустить тестовые приложения «Valar» в своей системе через Qt Creator и am получать ошибки, когда я строю код:Я получаю ошибку «ошибка: CL/cl.h: нет такого файла или каталога», когда я пытаюсь построить проект на Qt

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

я ввел команду: autoreconf -ivf и получил следующий результат:

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 

Все мои ошибки были подключены к файлу m4 так я создал пустой каталог и назвал его m4. После этого я смог запустить команду autoreconf --install, и я больше не получал такую ​​же ошибку. Кроме того, Makefile.in также был создан вместе со многими другими файлами.

Ссылка показывает состояние каталога после того как я побежал autoreconf --install:

Files after the command

я выполнил команду qmake --project в командной строке и файл .pro был создан.

Я открыл вновь созданный файл .pro в Qt Creator и связал библиотеки OpenCL в дополнение к другим файлам OpenCL в каталоге «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 

я получил следующие ошибки после нажатия на 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. 

Ниже приводится QMAKE информация о том, что у меня есть:

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

Пожалуйста, руководство меня в этом вопросе.

ответ

2

Проблема была исправлена, когда я изменил свой способ установки путей.

На мой вопрос, я установил пути следующим образом:

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 

я установил пути снова следующим образом и ошибки была исправлена:

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

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

Я также удалил $$PWD/../.. частей из других путей, которые я установил в моем файле .pro.

После внесения этих изменений мой код начал работать должным образом.

+0

«Суперпользователь» (https://superuser.com/help/on-topic) предлагает дополнительную поддержку по вопросам, связанным с переменными среды и путями установки. –