문제

나는 이것을 hlsl/glsl 셰이더 코드와 함께 오래 전에 #include 코드를 char* 런타임에 파일 IO가 발생하지 않도록합니다.

만약 내가 그것을 의사 코드로 표현한다면, 그것은 이것과 비슷하게 보일 것입니다.

#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");

물론 지금 #define 인용 자국을 사용하여 문자열을 시작하기 때문에 작동하지 않습니다.

도움이 되었습니까?

해결책

Bullet Physics Engines OpenCL의 사용을 참조하십시오 어떻게 a 핵심.

C ++ / C 소스에서

#define MSTRINGIFY(A) #A
char* stringifiedSourceCL = 
#include "VectorAddKernels.cl"

OpenCL 소스에서

MSTRINGIFY(
   __kernel void VectorAdd(__global float8* c)
   {
    // snipped out OpenCL code...
    return;
   }
);

다른 팁

에 따르면 이것, 불가능하지만 사용할 수 있습니다. xxd -i 같은 효과를 아치기 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top