名称后跟“::”必须是类或命名空间名称错误

时间:2016-01-15 18:13:24

标签: visual-studio-2013 cuda thrust

我试图从voxelpipe's code编译示例测试,但编译因以下错误而失败

name followed by "::" must be a class or namespace name

并指出它位于以下文件coarse.hfine.habuffer.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 ++编译器的问题,我是对的吗?

0 个答案:

没有答案