Compile errors in generated files ?

遇到了同样的问题。在使用版本控制一个一个排查文件后,确定是某个cpp文件的问题,它的函数定义少了一个括号,奇怪的是编译器的报错完全不提及*.cpp,而是所有的*.generated.h都出现类似的报错。详细的情况是这样的:排查文件时发现xxx.cpp文件明明定义了NativePreConstruct()函数,但是xxx.h的函数声明总是警告此函数未定义,而且cpp文件只定义了NativePreConstruct()函数而没有其他内容,仔细检查后里面的if语句发现少了括号,像这样:

NativePreConstruct(){
    ...
    if{
        ...
} 

怀疑因为是最后一个定义的函数,缺少“}”后编译器在此cpp文件中找不着其它“}”字符,因此继续编译xxx.generated.h文件时,就认为文件里面的所有内容都属于未配对{}函数的定义范围内,而不幸的是xxx.generated.h文件没有“}”字符而先出现了template的定义(很明显它不能在函数内定义),因此对xxx.generated.h文件的报错覆盖了函数{}符未配对的错误。因此,你应该检查有什么奇怪的已经声明且定义,但是却显示未定义的函数声明,并且查它们的括号配对情况。