-2

我有两个文件。一个是main.cpp,其中#includes“MouseController.h”有我的鼠标对象的classdef。如果 MouseController.h 根本没有导入或包含,为什么 main 找不到我的 Mouse 类?

如果它有任何用途,Xcode 的 CMD-Click 让您可以将某事追溯到其声明,它会发现 Mouse 类没问题。

主文件

#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;
}

在此之后不再引用鼠标对象。

鼠标控制器.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
4

1 回答 1

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 应该是什么样子,但链接器不能找到它。

于 2013-09-10T20:26:13.317 回答