我正在尝试使用增强的生成器类(例如使用schedule()and )重新实现双边网格示例generate()。但是在尝试编译代码时出现错误。
g++ -std=c++11 -I ../../include/ -I ../../tools/ -I ../../apps/support/ -g - fno-rtti bilateral_grid_generator.cpp ../../lib/libHalide.a ../../tools/GenGen.cpp -o bin/bilateral_grid_exec -ldl -lpthread -lz
bin/bilateral_grid_exec -o ./bin target=host
Generator bilateral_grid has base_path ./bin/bilateral_grid
Internal error at /home/xxx/Projects/Halide/src/Generator.cpp:966 triggered by user code at /usr/include/c++/4.8/functional:2057:
Condition failed: generator
make: *** [bin/bilateral_grid.a] Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
看来,我没有把定义RDom和GeneratorParam在正确的位置。既然r.xandr.y都用在schedule()and 中generate(),我想我应该把它作为类成员。应该怎么做才能解决这个问题?
这是我写的代码。
class BilateralGrid : public Halide::Generator<BilateralGrid> {
public:
GeneratorParam<int> s_sigma{"s_sigma", 8};
//ImageParam input{Float(32), …Run Code Online (Sandbox Code Playgroud) halide ×1