====== clBuildProgram ====== Baut (kompiliert und links) Programmcode für den Programmcode oder -binary. Für genauere Informationen: [[http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clBuildProgram.html|[5]]] ===== Signatur ===== 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) ===== Parameter ===== **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 [[http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clBuildProgram.html|[5]]] gegeben. **pfn_notify:** FIXME **user_data:** wird als Argument an //pfn_notify// übergeben, wenn das aufgerufen wird. Kann NULL sein. ===== Rückgabewert ===== **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. |