为什么此代码会给我关于标识符GLUquadric
的错误?据我所知,GLFW包含应将其纳入范围。
#ifndef BALL_H
#define BALL_H
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <glm/ext.hpp>
struct Cuboid;
struct Ball {
glm::vec3 position;
glm::vec3 velocity;
float radius;
glm::quat orientation;
glm::vec3 angular_velocity;
Ball(float radius);
};
void draw(const Ball& ball, GLUquadric* quadric);
void integrate(Ball& ball, float dt, const Cuboid& platform, glm::vec3 torque);
#endif
最佳答案
我自己想出了解决方案。似乎包含Ball.h
(我发布的那个)的.cpp文件已经包含GLFW/glfw3.h
,但事先没有#define GLFW_INCLUDE_GLU
。我通过在.cpp文件中添加定义来解决它,但是我想也许可以通过创建自己的 header opengl.h
来实现更好的解决方案:
#ifndef OPENGL_H
#define OPENGL_H
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#endif
然后包括它而不是
GLFW/glfw3.h
。关于c++ - 错误CC2061 : syntax error: identifier 'GLUquadric' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20720978/