使用g ++模板编译错误,使用llvm编译好

时间:2013-02-06 23:45:23

标签: c++ templates compiler-errors g++

我真的不知道该怎么做。我有一些代码在iOS和Linux服务器上共享。 iOS LLVM编译器编译得很好但是当我尝试使用g ++在Linux上编译时,我遇到了很多错误。第一个是以下内容:

RemoveLight.h: In member function ‘void RemoveLight<WindowDerived, ChunkDerived, dim>::lightRemoveEditStart()’:
RemoveLight.h:49:17: error: ‘FloodFillLight’ was not declared in this scope
RemoveLight.h:49:45: error: expected primary-expression before ‘,’ token
RemoveLight.h:49:59: error: expected primary-expression before ‘,’ token

这是第49行:

FloodFillLight<WindowDerived, ChunkDerived, dim>(x, i, z, target, chunkWindow);

我确实在RemoveLight.h中包含FloodFillLight.h,因此这不是问题,我的模板都在.h文件中声明。我没有在cpp文件中定义的模板的任何部分。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

尝试预处理文件,并确保在使用之前声明FloodFillLight。

可能是一个流浪的#ifdef混淆了你的包含。