0
我想在我的頭文件中使用一個extern「C」函數爲一個c + +類。C++與Extern「C」導致重複的符號錯誤
我編譯時不斷收到錯誤
duplicate symbol _currentInstance in:
main.o
GLHandler.o
我想我有權利衛士,但似乎無法找出爲什麼發生這種情況。任何幫助將非常感激。
這是頭文件。
#ifndef GLHANDLER_H
#define GLHANDLER_H
#include "LoadedObject.h"
#ifdef __cplusplus
extern "C" {
void displayCallback();
}
#endif
class GLHandler {
private:
LoadedObject *object;
public:
GLHandler(LoadedObject *);
void initializeVBO(LoadedObject *);
void renderObject(struct model *);
void displayFunction(void);
model *createModel(void);
void setupDisplayCallback();
};
GLHandler *currentInstance;
#ifdef __cplusplus
}
#endif
#endif
編輯:迅速指出了大衛的EXTERN GLHandler * currentInstance固定的錯誤。
也許這應該是'extern GLHandler * currentInstance;'? –
你當然在main.c和GLHandler.c中實現了這個函數。或者你把它放到一個頭文件中,而不是內聯。 – 2012-09-23 04:43:24