Я уже давно видел, как это делается с помощью шейдерного кода hlsl / glsl - с помощью #include
в файле исходного кода, который вставляет код в char*
, чтобы во время выполнения не происходил ввод-вывод файла.
Если бы я представлял его как псевдокод, это выглядело бы примерно так:
#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");
Теперь, конечно, #define
не будет работать, потому что он просто попытается использовать эти кавычки для запуска строк.