我有一个.h文件中的这个类的定义,以及.cpp文件中的实现。当我尝试编译此,头文件中给出了一些错误和警告:变量在类定义中具有不完整类型?
/home/don/BerthaApex/apex/src/lib/apexmain/apexloader.h:6: error: variable 'APEX_EXPORT ApexLoader' has initializer but incomplete type
class APEX_EXPORT ApexLoader
^
/home/don/BerthaApex/apex/src/lib/apexmain/apexloader.h:6: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
/home/don/BerthaApex/apex/src/lib/apexmain/apexloader.h:9: error: expected primary-expression before 'public'
public:
在发生这个错误代码是:
#ifndef _APEXLOADER_H
#define _APEXLOADER_H
#include "global.h"
class APEX_EXPORT ApexLoader
{
public:
int Load(int argc, char *argv[]);
};
#endif
随着“类APEX_EXPORT ApexLoader”是与行错误和警告。
APEX_EXPORT在包含在同一个文件中的头文件中定义。
编辑: 的APEX_EXPORT在 “global.h” 定义如下:
#ifdef APEX_MAKEDLL
#define APEX_EXPORT APEX_EXPORT_DECL
#else
#define APEX_EXPORT APEX_IMPORT_DECL
#endif
有谁知道为什么这些错误有哪些?我该如何摆脱它们? 提前谢谢!
编译器:GCC 4.8.4 操作系统:Ubuntu的14.04
这个课程*之前的行*看起来像什么?什么是“APEX_EXPORT”?没有其他符号'ApexLoader'(例如作为预处理器宏)? –
APEX_EXPORT在哪里定义?如果它在另一个文件中,您是否将头文件包含在头文件中? –
您尚未定义宏'APEX_EXPORT',因此它看起来像名为“ApexLoader”的类APEX_EXPORT类型变量的声明。完全相同的错误[在这里](http://ideone.com/A9Pc6M)。 – molbdnilo