I'm having trouble using ifort as the compiler when running the example, but gfortran works.
make
ifort -c clfortran.f90
clfortran.f90(462): warning #6178: The return value of this FUNCTION has not been defined. [CLGETPLATFORMIDS]
integer(c_int32_t) function clGetPlatformIDs(num_entries, &
------------------------------------^
clfortran.f90(473): warning #6178: The return value of this FUNCTION has not been defined. [CLGETPLATFORMINFO]
integer(c_int32_t) function clGetPlatformInfo(platform, param_name, &
------------------------------------^
clfortran.f90(490): warning #6178: The return value of this FUNCTION has not been defined. [CLGETDEVICEIDS]
integer(c_int32_t) function clGetDeviceIDs(platform, &
------------------------------------^
clfortran.f90(508): warning #6178: The return value of this FUNCTION has not been defined. [CLGETDEVICEINFO]
integer(c_int) function clGetDeviceInfo(device, &
--------------------------------^
clfortran.f90(526): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATESUBDEVICES]
integer(c_int32_t) function clCreateSubDevices(in_device, &
------------------------------------^
clfortran.f90(544): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINDEVICE]
integer(c_int32_t) function clRetainDevice(device) &
------------------------------------^
clfortran.f90(553): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASEDEVICE]
integer(c_int32_t) function clReleaseDevice(device) &
------------------------------------^
clfortran.f90(566): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATECONTEXT]
integer(c_intptr_t) function clCreateContext(properties, &
-------------------------------------^
clfortran.f90(586): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATECONTEXTFROMTYPE]
integer(c_intptr_t) function clCreateContextFromType(properties, &
-------------------------------------^
clfortran.f90(604): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINCONTEXT]
integer(c_int32_t) function clRetainContext(context) &
------------------------------------^
clfortran.f90(614): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASECONTEXT]
integer(c_int32_t) function clReleaseContext(context) &
------------------------------------^
clfortran.f90(624): warning #6178: The return value of this FUNCTION has not been defined. [CLGETCONTEXTINFO]
integer(c_int32_t) function clGetContextInfo(context, &
------------------------------------^
clfortran.f90(646): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATECOMMANDQUEUE]
integer(c_intptr_t) function clCreateCommandQueue(context, &
-------------------------------------^
clfortran.f90(662): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINCOMMANDQUEUE]
integer(c_int32_t) function clRetainCommandQueue(command_queue) &
------------------------------------^
clfortran.f90(672): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASECOMMANDQUEUE]
integer(c_int32_t) function clReleaseCommandQueue(command_queue) &
------------------------------------^
clfortran.f90(682): warning #6178: The return value of this FUNCTION has not been defined. [CLGETCOMMANDQUEUEINFO]
integer(c_int32_t) function clGetCommandQueueInfo(command_queue, &
------------------------------------^
clfortran.f90(704): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEBUFFER]
integer(c_intptr_t) function clCreateBuffer(context, &
-------------------------------------^
clfortran.f90(722): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATESUBBUFFER]
integer(c_intptr_t) function clCreateSubBuffer(buffer, &
-------------------------------------^
clfortran.f90(740): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEIMAGE]
integer(c_intptr_t) function clCreateImage(context, &
-------------------------------------^
clfortran.f90(760): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINMEMOBJECT]
integer(c_int32_t) function clRetainMemObject(mem_obj) &
------------------------------------^
clfortran.f90(769): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASEMEMOBJECT]
integer(c_int32_t) function clReleaseMemObject(mem_obj) &
------------------------------------^
clfortran.f90(778): warning #6178: The return value of this FUNCTION has not been defined. [CLGETSUPPORTEDIMAGEFORMATS]
integer(c_int32_t) function clGetSupportedImageFormats(context, &
------------------------------------^
clfortran.f90(797): warning #6178: The return value of this FUNCTION has not been defined. [CLGETMEMOBJECTINFO]
integer(c_int32_t) function clGetMemObjectInfo(memobj, &
------------------------------------^
clfortran.f90(814): warning #6178: The return value of this FUNCTION has not been defined. [CLGETIMAGEINFO]
integer(c_int32_t) function clGetImageInfo(image, &
------------------------------------^
clfortran.f90(831): warning #6178: The return value of this FUNCTION has not been defined. [CLSETMEMOBJECTDESTRUCTORCALLBACK]
integer(c_int32_t) function clSetMemObjectDestructorCallback(memobj, &
------------------------------------^
clfortran.f90(848): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATESAMPLER]
integer(c_intptr_t) function clCreateSampler(context, &
-------------------------------------^
clfortran.f90(865): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINSAMPLER]
integer(c_int32_t) function clRetainSampler(sampler) &
------------------------------------^
clfortran.f90(874): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASESAMPLER]
integer(c_int32_t) function clReleaseSampler(sampler) &
------------------------------------^
clfortran.f90(883): warning #6178: The return value of this FUNCTION has not been defined. [CLGETSAMPLERINFO]
integer(c_int32_t) function clGetSamplerInfo(sampler, &
------------------------------------^
clfortran.f90(904): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEPROGRAMWITHSOURCE]
integer(c_intptr_t) function clCreateProgramWithSource(context, &
-------------------------------------^
clfortran.f90(921): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEPROGRAMWITHBINARY]
integer(c_intptr_t) function clCreateProgramWithBinary(context, &
-------------------------------------^
clfortran.f90(942): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEPROGRAMWITHBUILTINKERNELS]
integer(c_intptr_t) function clCreateProgramWithBuiltInKernels(context, &
-------------------------------------^
clfortran.f90(959): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINPROGRAM]
integer(c_int32_t) function clRetainProgram(program) &
------------------------------------^
clfortran.f90(968): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASEPROGRAM]
integer(c_int32_t) function clReleaseProgram(program) &
------------------------------------^
clfortran.f90(977): warning #6178: The return value of this FUNCTION has not been defined. [CLBUILDPROGRAM]
integer(c_int32_t) function clBuildProgram(program, &
------------------------------------^
clfortran.f90(996): warning #6178: The return value of this FUNCTION has not been defined. [CLCOMPILEPROGRAM]
integer(c_int32_t) function clCompileProgram(program, &
------------------------------------^
clfortran.f90(1021): warning #6178: The return value of this FUNCTION has not been defined. [CLLINKPROGRAM]
integer(c_intptr_t) function clLinkProgram(context, &
-------------------------------------^
clfortran.f90(1046): warning #6178: The return value of this FUNCTION has not been defined. [CLUNLOADPLATFORMCOMPILER]
integer(c_int32_t) function clUnloadPlatformCompiler(platform) &
------------------------------------^
clfortran.f90(1055): warning #6178: The return value of this FUNCTION has not been defined. [CLGETPROGRAMINFO]
integer(c_int32_t) function clGetProgramInfo(program, &
------------------------------------^
clfortran.f90(1072): warning #6178: The return value of this FUNCTION has not been defined. [CLGETPROGRAMBUILDINFO]
integer(c_int32_t) function clGetProgramBuildInfo(program, &
------------------------------------^
clfortran.f90(1095): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEKERNEL]
integer(c_intptr_t) function clCreateKernel(program, &
-------------------------------------^
clfortran.f90(1108): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEKERNELSINPROGRAM]
integer(c_int32_t) function clCreateKernelsInProgram(program, &
------------------------------------^
clfortran.f90(1123): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINKERNEL]
integer(c_int32_t) function clRetainKernel(kernel) &
------------------------------------^
clfortran.f90(1132): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASEKERNEL]
integer(c_int32_t) function clReleaseKernel(kernel) &
------------------------------------^
clfortran.f90(1141): warning #6178: The return value of this FUNCTION has not been defined. [CLSETKERNELARG]
integer(c_int32_t) function clSetKernelArg(kernel, &
------------------------------------^
clfortran.f90(1156): warning #6178: The return value of this FUNCTION has not been defined. [CLGETKERNELINFO]
integer(c_int32_t) function clGetKernelInfo(kernel, &
------------------------------------^
clfortran.f90(1173): warning #6178: The return value of this FUNCTION has not been defined. [CLGETKERNELARGINFO]
integer(c_int32_t) function clGetKernelArgInfo(kernel, &
------------------------------------^
clfortran.f90(1192): warning #6178: The return value of this FUNCTION has not been defined. [CLGETKERNELWORKGROUPINFO]
integer(c_int32_t) function clGetKernelWorkGroupInfo(kernel, &
------------------------------------^
clfortran.f90(1215): warning #6178: The return value of this FUNCTION has not been defined. [CLWAITFOREVENTS]
integer(c_int32_t) function clWaitForEvents(num_events, &
------------------------------------^
clfortran.f90(1226): warning #6178: The return value of this FUNCTION has not been defined. [CLGETEVENTINFO]
integer(c_int32_t) function clGetEventInfo(event, &
------------------------------------^
clfortran.f90(1243): warning #6178: The return value of this FUNCTION has not been defined. [CLCREATEUSEREVENT]
integer(c_intptr_t) function clCreateUserEvent(context, &
-------------------------------------^
clfortran.f90(1254): warning #6178: The return value of this FUNCTION has not been defined. [CLRETAINEVENT]
integer(c_int32_t) function clRetainEvent(event) &
------------------------------------^
clfortran.f90(1263): warning #6178: The return value of this FUNCTION has not been defined. [CLRELEASEEVENT]
integer(c_int32_t) function clReleaseEvent(event) &
------------------------------------^
clfortran.f90(1272): warning #6178: The return value of this FUNCTION has not been defined. [CLSETUSEREVENTSTATUS]
integer(c_int32_t) function clSetUserEventStatus(event, &
------------------------------------^
clfortran.f90(1283): warning #6178: The return value of this FUNCTION has not been defined. [CLSETEVENTCALLBACK]
integer(c_int32_t) function clSetEventCallback(event, &
------------------------------------^
clfortran.f90(1302): warning #6178: The return value of this FUNCTION has not been defined. [CLGETEVENTPROFILINGINFO]
integer(c_int32_t) function clGetEventProfilingInfo(event, &
------------------------------------^
clfortran.f90(1323): warning #6178: The return value of this FUNCTION has not been defined. [CLFLUSH]
integer(c_int32_t) function clFlush(command_queue) &
------------------------------------^
clfortran.f90(1332): warning #6178: The return value of this FUNCTION has not been defined. [CLFINISH]
integer(c_int32_t) function clFinish(command_queue) &
------------------------------------^
clfortran.f90(1345): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEREADBUFFER]
integer(c_int32_t) function clEnqueueReadBuffer(command_queue, &
------------------------------------^
clfortran.f90(1370): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEREADBUFFERRECT]
integer(c_int32_t) function clEnqueueReadBufferRect(command_queue, &
------------------------------------^
clfortran.f90(1406): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEWRITEBUFFER]
integer(c_int32_t) function clEnqueueWriteBuffer(command_queue, &
------------------------------------^
clfortran.f90(1431): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEWRITEBUFFERRECT]
integer(c_int32_t) function clEnqueueWriteBufferRect(command_queue, &
------------------------------------^
clfortran.f90(1466): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEFILLBUFFER]
integer(c_int32_t) function clEnqueueFillBuffer(command_queue, &
------------------------------------^
clfortran.f90(1491): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUECOPYBUFFER]
integer(c_int32_t) function clEnqueueCopyBuffer(command_queue, &
------------------------------------^
clfortran.f90(1516): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUECOPYBUFFERRECT]
integer(c_int32_t) function clEnqueueCopyBufferRect(command_queue, &
------------------------------------^
clfortran.f90(1549): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEREADIMAGE]
integer(c_int32_t) function clEnqueueReadImage(command_queue, &
------------------------------------^
clfortran.f90(1578): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEWRITEIMAGE]
integer(c_int32_t) function clEnqueueWriteImage(command_queue, &
------------------------------------^
clfortran.f90(1607): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEFILLIMAGE]
integer(c_int32_t) function clEnqueueFillImage(command_queue, &
------------------------------------^
clfortran.f90(1630): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUECOPYIMAGE]
integer(c_int32_t) function clEnqueueCopyImage(command_queue, &
------------------------------------^
clfortran.f90(1655): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUECOPYIMAGETOBUFFER]
integer(c_int32_t) function clEnqueueCopyImageToBuffer(command_queue, &
------------------------------------^
clfortran.f90(1680): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUECOPYBUFFERTOIMAGE]
integer(c_int32_t) function clEnqueueCopyBufferToImage(command_queue, &
------------------------------------^
clfortran.f90(1705): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEMAPBUFFER]
type(c_ptr) function clEnqueueMapBuffer(command_queue, &
-----------------------------^
clfortran.f90(1732): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEMAPIMAGE]
type(c_ptr) function clEnqueueMapImage(command_queue, &
-----------------------------^
clfortran.f90(1763): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEUNMAPMEMOBJECT]
integer(c_int32_t) function clEnqueueUnmapMemObject(command_queue, &
------------------------------------^
clfortran.f90(1782): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEMIGRATEMEMOBJECTS]
integer(c_int32_t) function clEnqueueMigrateMemObjects(command_queue, &
------------------------------------^
clfortran.f90(1803): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUENDRANGEKERNEL]
integer(c_int32_t) function clEnqueueNDRangeKernel(command_queue, &
------------------------------------^
clfortran.f90(1828): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUETASK]
integer(c_int32_t) function clEnqueueTask(command_queue, &
------------------------------------^
clfortran.f90(1845): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUENATIVEKERNEL]
integer(c_int32_t) function clEnqueueNativeKernel(command_queue, &
------------------------------------^
clfortran.f90(1872): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEMARKERWITHWAITLIST]
integer(c_int32_t) function clEnqueueMarkerWithWaitList(command_queue, &
------------------------------------^
clfortran.f90(1887): warning #6178: The return value of this FUNCTION has not been defined. [CLENQUEUEBARRIERWITHWAITLIST]
integer(c_int32_t) function clEnqueueBarrierWithWaitList(command_queue, &
------------------------------------^
clfortran.f90(1902): warning #6178: The return value of this FUNCTION has not been defined. [CLSETPRINTFCALLBACK]
integer(c_int32_t) function clSetPrintfCallback(context, &
------------------------------------^
clfortran.f90(1917): warning #6178: The return value of this FUNCTION has not been defined. [CLGETEXTENSIONFUNCTIONADDRESSFORPLATFORM]
type(c_funptr) function clGetExtensionFunctionAddressForPlatform(platform, &
--------------------------------^
clfortran.f90(1738): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [IMAGE_ROW_PITCH]
image_row_pitch, &
----------------^
clfortran.f90(1739): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [IMAGE_SLICE_PITCH]
image_slice_pitch, &
----------------^
clfortran.f90(463): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [NUM_PLATFORMS]
platforms, num_platforms) &
---------------------------^
clfortran.f90(1306): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(1230): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(1197): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
----------------^
clfortran.f90(1178): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
----------------^
clfortran.f90(1160): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(1077): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(1059): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(887): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(818): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(801): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(686): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(628): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
-----------------^
clfortran.f90(512): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size_ret) &
----------------^
clfortran.f90(474): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [PARAM_VALUE_SIZE_RET]
param_value_size, param_value, param_value_size_ret) &
-----------------------------------------------^
clfortran.f90(494): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [NUM_DEVICES]
num_devices) &
----------------^
clfortran.f90(530): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [NUM_DEVICES_RET]
num_devices_ret) &
----------------^
clfortran.f90(1743): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(1714): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(1244): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(1097): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(1029): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(946): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(927): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(908): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(852): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(745): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(726): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(708): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(649): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(590): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(571): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ERRCODE_RET]
errcode_ret) &
----------------^
clfortran.f90(783): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [NUM_IMAGE_FORMATS]
num_image_formats) &
----------------^
clfortran.f90(1111): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [NUM_KERNELS_RET]
num_kernels_ret) &
----------------^
ifort examples/query_platforms_devices.f90 -L/usr/lib/x86_64-linux-gnu/ -lOpenCL -o query_platforms_devices
ifort examples/create_device_context.f90 -L/usr/lib/x86_64-linux-gnu/ -lOpenCL -o create_device_context
ifort examples/basic_device_io.f90 -L/usr/lib/x86_64-linux-gnu/ -lOpenCL -o basic_device_io