OpenCL helloworld compilation

Hi All,

I am new to OpenCL. I am having a bit of trouble compiling a canned HelloWorld application i download from the “OpenCL programming” book website. When I use g++ compiler I am getting some linking issues. I did include the “-lOpenCL” option as was suggested in some other post but it still does not work. I am guessing some library is missing. I am currently using the NVIDIA driver version 290.10. I am working on a lenovo laptop which has a GeFORCE GT 550M graphics card. I am developing on Ubuntu 11.1 64bit.

Additionally, my “LD_LIBRARY_PATH” is set to

/opt/tools/nvidia_sdk/cuda/lib64:/usr/lib:/usr/local/lib/

Any help would be much appreciated.

Thanks.

skilambi@Topaz:~/Programming/opencl/opencl_programming_guide/cl_book/src/Chapter_2/HelloWorld$ g++ -lOpenCL -L/opt/tools/nvidia_sdk/cuda/lib/ -I /opt/tools/nvidia_sdk/cuda/include/ HelloWorld.cpp

/tmp/ccYZGqU0.o: In function `CreateContext()':

HelloWorld.cpp:(.text+0x21): undefined reference to `clGetPlatformIDs'

HelloWorld.cpp:(.text+0xa2): undefined reference to `clCreateContextFromType'

HelloWorld.cpp:(.text+0xeb): undefined reference to `clCreateContextFromType'

/tmp/ccYZGqU0.o: In function `CreateCommandQueue(_cl_context*, _cl_device_id**)':

HelloWorld.cpp:(.text+0x161): undefined reference to `clGetContextInfo'

HelloWorld.cpp:(.text+0x1dc): undefined reference to `clGetContextInfo'

HelloWorld.cpp:(.text+0x22b): undefined reference to `clCreateCommandQueue'

/tmp/ccYZGqU0.o: In function `CreateProgram(_cl_context*, _cl_device_id*, char const*)':

HelloWorld.cpp:(.text+0x3af): undefined reference to `clCreateProgramWithSource'

HelloWorld.cpp:(.text+0x410): undefined reference to `clBuildProgram'

HelloWorld.cpp:(.text+0x44f): undefined reference to `clGetProgramBuildInfo'

HelloWorld.cpp:(.text+0x48e): undefined reference to `clReleaseProgram'

/tmp/ccYZGqU0.o: In function `CreateMemObjects(_cl_context*, _cl_mem**, float*, float*)':

HelloWorld.cpp:(.text+0x56d): undefined reference to `clCreateBuffer'

HelloWorld.cpp:(.text+0x5a2): undefined reference to `clCreateBuffer'

HelloWorld.cpp:(.text+0x5ce): undefined reference to `clCreateBuffer'

/tmp/ccYZGqU0.o: In function `Cleanup(_cl_context*, _cl_command_queue*, _cl_program*, _cl_kernel*, _cl_mem**)':

HelloWorld.cpp:(.text+0x67e): undefined reference to `clReleaseMemObject'

HelloWorld.cpp:(.text+0x6a0): undefined reference to `clReleaseCommandQueue'

HelloWorld.cpp:(.text+0x6b3): undefined reference to `clReleaseKernel'

HelloWorld.cpp:(.text+0x6c6): undefined reference to `clReleaseProgram'

HelloWorld.cpp:(.text+0x6d9): undefined reference to `clReleaseContext'

/tmp/ccYZGqU0.o: In function `main':

HelloWorld.cpp:(.text+0x812): undefined reference to `clCreateKernel'

HelloWorld.cpp:(.text+0x912): undefined reference to `clSetKernelArg'

HelloWorld.cpp:(.text+0x936): undefined reference to `clSetKernelArg'

HelloWorld.cpp:(.text+0x95a): undefined reference to `clSetKernelArg'

HelloWorld.cpp:(.text+0x9f9): undefined reference to `clEnqueueNDRangeKernel'

HelloWorld.cpp:(.text+0xa8a): undefined reference to `clEnqueueReadBuffer'