I am trying to utilize the C++ API for OpenCL. I have installed my NVIDIA drivers and I have tested that I can run the simple vector addition program provided [here](http://www.thebigblob.com/getting-started-with-opencl-and-gpu-computing/). I can compile this program with following gcc call and the program runs without problem.

```
gcc main.c -o vectorAddition -l OpenCL -I/usr/local/cuda-6.5/include

```

However, I would very much prefer to use the C++ API as opposed the very verbose host files needed for C.

I downloaded the C++ bindings from Khronos from [here](https://www.khronos.org/registry/cl/api/1.1/cl.hpp) and placed the `cl.hpp` file in the same location as my other `cl.h` file. The code uses some C++11 so I can compile the code with:

```
g++ main.cpp -o vectorAddition_cpp -std=c++11 -l OpenCL -I/usr/local/cuda-6.5/include

```

but when I try to run the program I get the error:

```
clGetPlatformIDs(-1001)

```

I also tried the example provided [here](http://simpleopencl.blogspot.com/2013/06/tutorial-simple-start-with-opencl-and-c.html) as well which gave a more helpful error message.

```
No platforms found. Check OpenCL installation!

```

The particular code which provides this error is this:

```
std::vector<cl::Platform> all_platforms;
    cl::Platform::get(&all_platforms);
    if(all_platforms.size()==0){
    std::cout<<" No platforms found. Check OpenCL installation!\n";
    exit(1);
    }

```

This seems so strange given that the C implementation runs without problem. Any insights would be sincerely appreciated.

**EDIT**

The C implementation actually isn't running correctly. Each addition is printed to equal zero. Checking the `ret_num_platforms` also returns 0. For some reason my setup is failing to find my GPU. What could I have missed? My install consists of the nvidia-340 driver and cuda-6.5 installed via `apt-get` and the `.run` file respectively.