【发布时间】:2011-04-15 05:27:28
【问题描述】:
我正在使用 Visual Studio 2010。
我正在尝试在 OpenGL 中编写简单的 Camera 类。
我需要在 Camera.h 中包含 gl/gl.h
gl/gl.h 已包含在 main.cpp 中,Camera.h 已包含在 main.cpp 中
当我把
#include <gl/gl.h>
在 Camera.h 中,我遇到了很多类似这样的错误:Error 11 error C2086: 'int APIENTRY' : redefinition C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\gl\GL.h 1153 1 Gaz 3D
文件:
相机.h
#include <math.h>
#include <gl/gl.h>
#ifndef _CAMERA_H
#define _CAMERA_H
class Camera
{
private:
Camera();
public:
static Camera& getCamera();
float x, y, z, rotv, roth;
void moveForward(float n);
void moveBackward(float n);
void moveLeft(float n);
void moveRight(float n);
void lookUp(float n);
void lookDown(float n);
void lookLeft(float n);
void lookRight(float n);
};
#endif
main.cpp:
#include <windows.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <math.h>
#include "Camera.h"
// ... some variables ...
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
// main code ...
}
我做错了什么?
【问题讨论】:
-
我不认为这会导致您的问题,所以我不会将其作为答案发布:
#include <math.h>和#include <gl/gl.h>应该在相机中的#ifndef保护内。 H。再三考虑,您甚至根本不需要该标题中的那些包含;你在 Camera 的声明中没有使用他们的任何东西。 -
我不会,但我会使用数学和 gl。
标签: opengl include redefinition