我试图从voxelpipe's code编译示例测试,但编译因以下错误而失败
name followed by "::" must be a class or namespace name
并指出它位于以下文件coarse.h
,fine.h
和abuffer.h
我没有更改代码的任何部分,所以我希望在正确设置包含路径(它们是)之后编译它。我在这里留下了检测到错误的代码段,也许有人可以就我可能遗漏的内容给出一些建议。
coarse.h
...
const int32 block_count = thrust::detail::device::cuda::arch::max_active_blocks(setup_kernel<BLOCK_SIZE, log_TILE_SIZE>, BLOCK_SIZE, 0);
...
const int32 block_count = thrust::detail::device::cuda::arch::max_active_blocks(coarse_raster_kernel<BLOCK_SIZE,log_TILE_SIZE,tile_id_type>, BLOCK_SIZE, 0);
...
dim3 dim_grid = dim3( thrust::detail::device::cuda::arch::max_active_blocks(compute_tile_ranges<BLOCK_SIZE,tile_id_type>, BLOCK_SIZE, 0), 1, 1 );
fine.h
dim3 dim_grid = dim3( thrust::detail::device::cuda::arch::max_active_blocks(FR::fine_raster_kernel<shader_type,BLOCK_SIZE,LOG_TILE_SIZE,VoxelType,VoxelizationType,BlendingMode>, BLOCK_SIZE, 0), 1, 1 );
abuffer.h
dim3 dim_grid = dim3( thrust::detail::device::cuda::arch::max_active_blocks(AB::A_buffer_unsorted_small_kernel<shader_type,BLOCK_SIZE,VoxelType,VoxelizationType>, BLOCK_SIZE, 0), 1, 1 );
...
dim3 dim_grid = dim3( thrust::detail::device::cuda::arch::max_active_blocks(AB::A_buffer_unsorted_large_kernel<shader_type,BLOCK_SIZE,VoxelType,VoxelizationType>, BLOCK_SIZE, 0), 1, 1 );
到目前为止,我最好的猜测是导致问题的thrust
,但是因为我在Visual Studio中创建了一个CUDA项目,我认为应该立即识别推力,不应该吗?
由于所有代码都是用.h
文件编写的,因此不应该有任何nvcc将文件发送到c ++编译器的问题,我是对的吗?