在字符串常量之前的预期unqualified-id,包括ZenLib / Ztring.h

时间:2012-08-18 12:07:08

标签: c++ c

在包含的ZenLib头文件中,我有这个定义配置

//Char types
#if defined(__UNICODE__)
    #if defined (_MSC_VER) && !defined (_NATIVE_WCHAR_T_DEFINED)
        #pragma message Native wchar_t is not defined, not tested, you should put /Zc:wchar_t in compiler options
    #endif
    typedef wchar_t Char;
    #undef  __T
    #define __T(__x) L ## __x
#else // defined(__UNICODE__)
    typedef char Char;
    #undef  __T
    #define __T(__x) __x
#endif // defined(__UNICODE__)
#ifdef wchar_t
    typedef wchar_t wchar;
#endif // wchar_t

//***************************************************************************
// Platform differences
//***************************************************************************

//End of line
extern const Char* EOL;
extern const Char  PathSeparator;

最后两行无法使用此消息进行编译:

../ZZZ/ZenLib/Conf.h:243: error: expected unqualified-id before string constant
../ZZZ/ZenLib/Conf.h:243: error: expected initializer before string constant
make: *** [mediainfo.o] Error 1

任何人都可以了解编译器在这里期望的内容吗?标记为c ++,因为它被编译为cpp文件。

从应用程序的角度来看,它应该被定义为char

1 个答案:

答案 0 :(得分:1)

您包含的其中一个头文件包含EOL的定义,并发出声明

extern const Char* EOL;

看起来像

extern const Char* '\n'; // or '\r', or a numeric constant

EOL重命名为不同的内容,例如EolEOL_CHAR应该会有所帮助。