I have an OpenCL program written in C and in the same directory I have OpenCL.dll and its relative .lib and .exp named OpenCL32.lib and OpenCL32.exp which I've exported from OpenCL.dll.
I use the following compile command
cl.exe /Zi /EHsc /nologo /IC:\Users\marco\Desktop\OpenCL-Headers /Fe: main.exe *.c /link OpenCL32.lib
and I get this error
main.obj : error LNK2019: riferimento al simbolo esterno _clGetPlatformIDs@12 non risolto nella funzione _get_GPU_platform
main.obj : error LNK2019: riferimento al simbolo esterno _clGetPlatformInfo@20 non risolto nella funzione _get_GPU_platform
main.obj : error LNK2019: riferimento al simbolo esterno _clGetDeviceIDs@24 non risolto nella funzione _get_num_GPU_devices
main.obj : error LNK2019: riferimento al simbolo esterno _clGetDeviceInfo@20 non risolto nella funzione _get_GPU_mem
main.obj : error LNK2019: riferimento al simbolo esterno _clCreateContext@24 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clReleaseContext@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clReleaseCommandQueue@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clCreateBuffer@24 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clReleaseMemObject@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clCreateProgramWithSource@20 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clReleaseProgram@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clBuildProgram@24 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clGetProgramBuildInfo@24 non risolto nella funzione _print_build_log_failure
main.obj : error LNK2019: riferimento al simbolo esterno _clCreateKernel@12 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clReleaseKernel@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clSetKernelArg@16 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clGetKernelWorkGroupInfo@24 non risolto nella funzione _get_work_group_size
main.obj : error LNK2019: riferimento al simbolo esterno _clFinish@4 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clEnqueueReadBuffer@36 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clEnqueueNDRangeKernel@36 non risolto nella funzione _run_kernel
main.obj : error LNK2019: riferimento al simbolo esterno _clCreateCommandQueue@20 non risolto nella funzione _run_kernel
main.exe : fatal error LNK1120: 21 esterni non risolti
I used OpenCL.dll from System32 and this is the dumpbin result
dumpbin /exports C:\\Windows\\System32\\OpenCL.dll
Microsoft (R) COFF/PE Dumper Version 14.28.29913.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\\Windows\\System32\\OpenCL.dll
File Type: DLL
Section contains the following exports for OpenCL.dll
00000000 characteristics
FFFFFFFF time date stamp
0.00 version
1 ordinal base
120 number of functions
120 number of names
ordinal hint RVA name
1 0 000013F0 clBuildProgram
2 1 00001410 clCloneKernel
3 2 00001430 clCompileProgram
4 3 00001450 clCreateBuffer
5 4 00001480 clCreateCommandQueue
6 5 000014A0 clCreateCommandQueueWithProperties
7 6 000014C0 clCreateContext
8 7 00001560 clCreateContextFromType
9 8 00001790 clCreateFromGLBuffer
10 9 000017B0 clCreateFromGLRenderbuffer
11 A 000017D0 clCreateFromGLTexture
12 B 00001800 clCreateFromGLTexture2D
13 C 00001830 clCreateFromGLTexture3D
14 D 00001860 clCreateImage
15 E 00001890 clCreateImage2D
16 F 000018C0 clCreateImage3D
17 10 000018F0 clCreateKernel
18 11 00001910 clCreateKernelsInProgram
19 12 00001930 clCreatePipe
20 13 00001960 clCreateProgramWithBinary
21 14 00001990 clCreateProgramWithBuiltInKernels
22 15 000019C0 clCreateProgramWithIL
23 16 000019E0 clCreateProgramWithSource
24 17 00001A10 clCreateSampler
25 18 00001A40 clCreateSamplerWithProperties
26 19 00001A60 clCreateSubBuffer
27 1A 00001A90 clCreateSubDevices
28 1B 00001AD0 clCreateUserEvent
29 1C 00001B70 clEnqueueAcquireGLObjects
30 1D 00001B90 clEnqueueBarrier
31 1E 00001BB0 clEnqueueBarrierWithWaitList
32 1F 00001BD0 clEnqueueCopyBuffer
33 20 00001BF0 clEnqueueCopyBufferRect
34 21 00001C10 clEnqueueCopyBufferToImage
35 22 00001C30 clEnqueueCopyImage
36 23 00001C50 clEnqueueCopyImageToBuffer
37 24 00001C70 clEnqueueFillBuffer
38 25 00001C90 clEnqueueFillImage
39 26 00001CB0 clEnqueueMapBuffer
40 27 00001CE0 clEnqueueMapImage
41 28 00001D10 clEnqueueMarker
42 29 00001D30 clEnqueueMarkerWithWaitList
43 2A 00001D50 clEnqueueMigrateMemObjects
44 2B 00001D70 clEnqueueNDRangeKernel
45 2C 00001D90 clEnqueueNativeKernel
46 2D 00001DB0 clEnqueueReadBuffer
47 2E 00001DD0 clEnqueueReadBufferRect
48 2F 00001DF0 clEnqueueReadImage
49 30 00001E90 clEnqueueReleaseGLObjects
50 31 00001EB0 clEnqueueSVMFree
51 32 00001ED0 clEnqueueSVMMap
52 33 00001EF0 clEnqueueSVMMemFill
53 34 00001F10 clEnqueueSVMMemcpy
54 35 00001F30 clEnqueueSVMMigrateMem
55 36 00001F50 clEnqueueSVMUnmap
56 37 00001F70 clEnqueueTask
57 38 00001F90 clEnqueueUnmapMemObject
58 39 00001FB0 clEnqueueWaitForEvents
59 3A 00001FD0 clEnqueueWriteBuffer
60 3B 00001FF0 clEnqueueWriteBufferRect
61 3C 00002010 clEnqueueWriteImage
62 3D 00002030 clFinish
63 3E 00002050 clFlush
64 3F 00002070 clGetCommandQueueInfo
65 40 00002080 clGetContextInfo
66 41 00002090 clGetDeviceAndHostTimer
67 42 000020B0 clGetDeviceIDs
68 43 00002180 clGetDeviceInfo
69 44 00002190 clGetEventInfo
70 45 000021B0 clGetEventProfilingInfo
71 46 000021D0 clGetExtensionFunctionAddress
72 47 00002790 clGetExtensionFunctionAddressForPlatform
73 48 00002D70 clGetGLObjectInfo
74 49 00002D90 clGetGLTextureInfo
75 4A 00002DB0 clGetHostTimer
76 4B 00002DD0 clGetImageInfo
77 4C 00002DF0 clGetKernelArgInfo
78 4D 00002E10 clGetKernelInfo
79 4E 00002E30 clGetKernelSubGroupInfo
80 4F 00002E70 clGetKernelWorkGroupInfo
81 50 00002E90 clGetMemObjectInfo
82 51 00002EB0 clGetPipeInfo
83 52 00002ED0 clGetPlatformIDs
84 53 00002FB0 clGetPlatformInfo
85 54 00003010 clGetProgramBuildInfo
86 55 00003030 clGetProgramInfo
87 56 00003050 clGetSamplerInfo
88 57 00003070 clGetSupportedImageFormats
89 58 00003090 clLinkProgram
90 59 000030C0 clReleaseCommandQueue
91 5A 000030D0 clReleaseContext
92 5B 000030E0 clReleaseDevice
93 5C 00003120 clReleaseEvent
94 5D 00003140 clReleaseKernel
95 5E 00003160 clReleaseMemObject
96 5F 00003180 clReleaseProgram
97 60 000031A0 clReleaseSampler
98 61 000031C0 clRetainCommandQueue
99 62 000031D0 clRetainContext
100 63 000031E0 clRetainDevice
101 64 00003220 clRetainEvent
102 65 00003240 clRetainKernel
103 66 00003260 clRetainMemObject
104 67 00003280 clRetainProgram
105 68 000032A0 clRetainSampler
106 69 000032C0 clSVMAlloc
107 6A 000032E0 clSVMFree
108 6B 00003300 clSetCommandQueueProperty
109 6C 00003310 clSetDefaultDeviceCommandQueue
110 6D 00003330 clSetEventCallback
111 6E 00003350 clSetKernelArg
112 6F 00003370 clSetKernelArgSVMPointer
113 70 00003390 clSetKernelExecInfo
114 71 000033B0 clSetMemObjectDestructorCallback
115 72 000033D0 clSetProgramReleaseCallback
116 73 000033F0 clSetProgramSpecializationConstant
117 74 00003410 clSetUserEventStatus
118 75 00003430 clUnloadCompiler
119 76 00003440 clUnloadPlatformCompiler
120 77 00003470 clWaitForEvents
Summary
2000 .data
2000 .pdata
B000 .rdata
1000 .reloc
1000 .rsrc
11000 .text
1000 _RDATA
Any suggestion? Thanks.