概述
对于功能比较丰富的程序,在实现的时候,为了便于维护,可以将不同的功能放到不同的头文件中,再统一编译、链接。在 OpenCL 1.2 中,支持将程序的构建拆分为编译、链接两个步骤,这两个步骤相互独立。
本文描述如何将构建拆分为编译和链接两个独立的步骤,在 No.4_2_OpenCLCompile
中再把功能实现放到单独的头文件中。
由于华为荣耀8 只支持到 OpenCL 1.1,为了使用 OpenCL 1.2 功能,该 OpenCL 程序在 Ubuntu 上执行,GPU 为 AMD RX 460。完整代码参见 No.4_1_OpenCLCompile,输出结果如下:
xbdong@xbdong-opencl:~/Project/github/OpenCL/No.4_1_OpenCLCompile$ ./OpenCLCompile
[Platform Infomation]
platform name: AMD Accelerated Parallel Processing
[Device Infomation]
device name: Baffin
[Result]
lower case is: hello opencl, i like u
实现
将 clBuildProgram
拆分为 clCompileProgram
和 clLinkProgram
。在