自己编写的一个OpenCL程序,在编译的时候出现下面的错误:
error LNK2019: unresolved external symbol clCreateKernel referenced in function "int __cdecl initializeCL(void)"
error LNK2019: unresolved external symbol clBuildProgram referenced in function"int __cdecl initializeCL(void)"
………………
根据VS2010的提示,显示的是编译(build)错误。仔细看一下,问题出现在所有的OpenCL函数上面。在百度过LNK2019错误之后,有的是出现在build阶段,有的是出现在link阶段。总的分析应该是工程的属性没有设置好,所以重点就在各种属性、环境的配置上面。在VC++ Directories中设置好include和lib之后,还是有这个问题,于是继续找。
再看Linker,条目下有Additional Library Directories一项,里面包含了AMD APP的库函数,本人使用的是WIN7 64位,AMD的显卡,而在该目录下的Lib显示的是X86。问题找到了,把X86改成X64,重新编译,运行通过。
所以,有关编译连接的问题一般都是外部的环境没有设置好,这就需要仔细配置VS的属性。