-2

私は2つのファイルを持っています。1 つは main.cpp で、Mouse オブジェクトのクラス定義を持つ "MouseController.h" が #include されています。MouseController.h にインポートまたはインクルードがまったくない場合、メインが Mouse クラスを見つけるのに問題があるのはなぜですか?

何かを使用する場合、Xcode の CMD-Click を使用すると、何かをその宣言までさかのぼることができ、Mouse クラスが適切であることがわかります。

メイン.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
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 に答える