我有一個.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