Community
cancel
Showing results for
Did you mean:
New Contributor I
514 Views

## OpenCL host code getting compile error: ‘clCreatePipe’ was not declared in this scope

I'm including CL/cl.hpp. However, I see that 'clCreatePipe' is defined in CL/cl.h. In the comments section of cl.hpp, it explicitely says,

* The interface is contained with a single C++ header file \em cl.hpp and all * definitions are contained within the namespace \em cl. There is no additional * requirement to include \em cl.h and to use either the C++ or original C * bindings it is enough to simply include \em cl.hpp.

However, cl.hpp does not declare "clCreatePipe". I will need to include cl.h even though the header says I don't. Is it OK then to also include cl.h (before cl.hpp)?

In my code, I tried also adding the cl:: namespace (cl::clCreatePipe), but got the same error.

Tags (3)
1 Solution
New Contributor I
231 Views

It looks like I have to do

#define CL_TARGET_OPENCL_VERSION 200

#include <CL/opencl.h>

in my host code, per Appendix 3 in the OpenCL programmers guide. It now compiles.

2 Replies
New Contributor I
232 Views

It looks like I have to do

#define CL_TARGET_OPENCL_VERSION 200

#include <CL/opencl.h>

in my host code, per Appendix 3 in the OpenCL programmers guide. It now compiles.

Employee
231 Views

Hi,

Yes, you have to define CL_TARGET_OPENCL_VERSION 200 in order to used OpenCL 2.0 features.

Thanks