我有两个文件。一个是main.cpp,#include“MouseController.h”,它有一个Mouse对象的classdef。如果MouseController.h根本没有导入或包含,为什么main在查找我的Mouse类时遇到问题?
如果有任何用途,可以通过CMD-Click of Xcode查找返回其声明的内容,发现Mouse类正常。
Main.cpp的
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
#include <iostream>
#import "MouseController.h"
Mouse mouse;
float angle = 0.0f;
void selfInit();
void glInit();
void DisplayCallback();
void ReshapeCallback(int w, int h);
void UpdateAll(int value);
int main(int argc, char** argv)
{
selfInit();
glutInit(&argc, argv);
glInit();
return 0;
}
此后不再有对鼠标对象的引用。
MouseController.h
#ifndef __FinalPiece__MouseController__
#define __FinalPiece__MouseController__
class Mouse {
public:
static int CurrentX;
static int CurrentY;
static int LastX;
static int LastY;
static int DeltaX;
static int DeltaY;
static void move(int x, int y);
static void update();
static void clicked(int button, int state, int x, int y);
};
#endif
答案 0 :(得分:2)
在没有看到你的代码的情况下,这是一个黑暗的镜头,但听起来你得到了一个链接器错误。
// main.cpp
#include "MouseController.h"
int main()
{
// do stuff
return 0;
}
// MouseController.cpp
#include "MouseController.h"
// implement MouseController here
// MouseController.h
// define MouseController here
如果MouseController.cpp不存在,没有被编译(即不是你的项目或Makefile的一部分),或者MouseController.h没有实现类内联,编译器知道MouseController应该是什么样子,但链接器找不到它。