Baut (kompiliert und links) Programmcode für den Programmcode oder -binary. Für genauere Informationen: [5]
cl_int clBuildProgram ( cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (CL_CALLBACK *pfn_notify) ( cl_program program, void *user_data ), void *user_data)
programm: Das Programm-Objekt
device_list: Ein Zeiger zur Liste der mit dem Programm in Verbindung stehenden Geräte. Wenn device_list NULL ist, dann wird das Programm für alle Geräte gebaut, für die eine Quelle oder Binary geladen wurde. Wenn device_list nicht NULL ist, dann das Programm nur für Geräte gebaut, die in der Liste stehen.
num_devices: Die Anzahl der Geräte, die in device_list stehen.
options: Zeiger zu einem Null-terminierten String, der die Parameter fürs Bauen des Codes angeben. Die verfügbaren Parameter sind unter [5] gegeben.
pfn_notify:
user_data: wird als Argument an pfn_notify übergeben, wenn das aufgerufen wird. Kann NULL sein.
Rückgabewert - Fehlercode:
Wert | Beschreibung |
---|---|
CL_SUCCESS | Die Funktion wurde erfolgreich ausgeführt |
CL_INVALID_PROGRAM | programm ist kein gültiges Programm |
CL_INVALID_VALUE | device_list ist NULL und num_devices ist größer als 0 oder device_list ist nicht NULL aber num_devices ist 0 |
CL_INVALID_VALUE | falls pfn_notify gleich NULL ist, aber user_data nicht NULL ist. |
CL_INVALID_DEVICE | Geräte, die in device_list stehen sind nicht in program angegeben. |
CL_INVALID_BINARY | das Programm wurde mit clCreateProgramWithBinary erstellt aber die Geräte, die in device_list stehen haben keine gültige Binary geladen |
CL_INVALID_BUILD_OPTIONS | options enthält ungültige Optionen |
CL_COMPILER_NOT_AVAILABLE | das Programm wurde mit clCreateProgramWithSource erzeugt, aber der Compiler ist nicht verfügbar. Zum Beispiel CL_DEVICE_COMPILER_AVAILABLE ergibt CL_FALSE (clGetDeviceInfo). |
CL_BUILD_PROGRAM_FAILURE | Es ist ein Fehler beim Bauen der Programm-Executable aufgetreten. Der Fehlercode wird zurückgegeben, wenn clBuildProgram zurückkehrt, aber noch nicht vollständig gebaut hat |
CL_INVALID_OPERATION | es sind bereits Kernel-Objekte mit dem Programm-Objekt verbunden oder das Programm nicht mit clCreateProgramWithSource oder clCreateProgramWithBinary erzeugt worden ist. |
CL_OUT_OF_RESOURCES | Es ist ein Fehler beim Reservieren von Speicher aufgetreten, der für die OpenCL-Implementation auf dem Gerät gebraucht wird. |
CL_OUT_OF_HOST_MEMORY | Es ist ein Fehler beim Reservieren von Speicher aufgetreten, der für die OpenCL-Implementation auf dem Hostprozressor gebraucht wird. |