2010-06-11 2 views
3

그래서 ATI Stream SDK를 다운로드했습니다. 지금은 GPU가 없어서 '-device cpu'를 사용하고 LD_LIBRARY_PATH 등에 디렉토리를 추가하여 OpenCl 디렉토리의 프로그램/예제를 얻었습니다.QtOpenCl "undefined reference"는 오류를 만듭니다.

QtOpenCl을 설치할 때 문제가 있습니다.

[email protected]:~/Applications/qt-labs-opencl$ make 
cd src/ && make -f Makefile 
make[1]: Entering directory `/home/skkard/Applications/qt-labs-opencl/src' 
cd opencl/ && make -f Makefile 
make[2]: Entering directory `/home/skkard/Applications/qt-labs-opencl/src/opencl' 
make[2]: Nothing to be done for `first'. 
make[2]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/src/opencl' 
cd openclgl/ && make -f Makefile 
make[2]: Entering directory `/home/skkard/Applications/qt-labs-opencl/src/openclgl' 
make[2]: Nothing to be done for `first'. 
make[2]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/src/openclgl' 
make[1]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/src' 
cd examples/ && make -f Makefile 
make[1]: Entering directory `/home/skkard/Applications/qt-labs-opencl/examples' 
cd opencl/ && make -f Makefile 
make[2]: Entering directory `/home/skkard/Applications/qt-labs-opencl/examples/opencl' 
cd vectoradd/ && make -f Makefile 
make[3]: Entering directory `/home/skkard/Applications/qt-labs-opencl/examples/opencl/vectoradd' 
g++ -o vectoradd vectoradd.o qrc_vectoradd.o -L/usr/lib -L../../../lib -L../../../bin -lQtOpenCL -lQtGui -lQtCore -lpthread 
../../../lib/libQtOpenCL.so: undefined reference to `clBuildProgram' 
../../../lib/libQtOpenCL.so: undefined reference to `clSetCommandQueueProperty' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueNDRangeKernel' 
../../../lib/libQtOpenCL.so: undefined reference to `clSetKernelArg' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueCopyBufferToImage' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseMemObject' 
../../../lib/libQtOpenCL.so: undefined reference to `clFinish' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueUnmapMemObject' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetMemObjectInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueReadImage' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueMarker' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainCommandQueue' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetCommandQueueInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueCopyImage' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseContext' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainMemObject' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseEvent' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueWriteBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueCopyBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueMapImage' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueReadBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clUnloadCompiler' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueBarrier' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetProgramBuildInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueWaitForEvents' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainProgram' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateContext' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateImage3D' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueMapBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetDeviceIDs' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetContextInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetDeviceInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseCommandQueue' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetSamplerInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetPlatformIDs' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetSupportedImageFormats' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetPlatformInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clWaitForEvents' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetEventInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetEventProfilingInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetImageInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateProgramWithBinary' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseSampler' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateCommandQueue' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetKernelWorkGroupInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainEvent' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainContext' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateSampler' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseProgram' 
../../../lib/libQtOpenCL.so: undefined reference to `clFlush' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetProgramInfo' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateKernel' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainKernel' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueWriteImage' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateKernelsInProgram' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateProgramWithSource' 
../../../lib/libQtOpenCL.so: undefined reference to `clReleaseKernel' 
../../../lib/libQtOpenCL.so: undefined reference to `clRetainSampler' 
../../../lib/libQtOpenCL.so: undefined reference to `clCreateImage2D' 
../../../lib/libQtOpenCL.so: undefined reference to `clEnqueueCopyImageToBuffer' 
../../../lib/libQtOpenCL.so: undefined reference to `clGetKernelInfo' 
collect2: ld returned 1 exit status 
make[3]: *** [vectoradd] Error 1 
make[3]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/examples/opencl/vectoradd' 
make[2]: *** [sub-vectoradd-make_default] Error 2 
make[2]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/examples/opencl' 
make[1]: *** [sub-opencl-make_default] Error 2 
make[1]: Leaving directory `/home/skkard/Applications/qt-labs-opencl/examples' 
make: *** [sub-examples-make_default-ordered] Error 2 

은 '노 - openclgl'를 사용하여 시도했지만 등의 예 중 어느 것도 컴파일되지 않습니다 :

[email protected]:~/Applications/qt-labs-opencl$ ./configure 

This is the QtOpenCL configuration utility. 

Qt version ............. 4.6.2 
qmake .................. /usr/bin/qmake 
OpenCL ................. yes 
OpenCL/OpenGL interop .. yes 
Extra QMAKE_CXXFLAGS ... 
Extra INCLUDEPATH ...... 
Extra LIBS ............. -lOpenCL 

QtOpenCL has been configured. Run '/usr/bin/make' to build. 

만들기가 나에게 제공합니다

구성 스크립트는 저를 제공합니다.

나는 시냅스에서 설치된 Qt를 사용하여 우분투 10.04를 사용하고 있습니다.

답변

2

OpenCL 런타임을 연결하지 않은 것 같습니다. QT 라이브러리는 이러한 함수를 호출하지만 다른 파일에 정의되어 있지 않습니다. 문제를 해결하려면 "그"파일에 링크해야합니다.

+0

당신은 syslink를 만들 것을 의미합니까? 어떻게 그리고 어디에서? –

+0

OpenCL 헤더를 링크해야합니까? 그들은 내가 생각하기에 연결되어있다. –

+0

아니, OpenCL 라이브러리 (ie .so 파일)를 링크해야한다! – Goz